bhushankelkar/shopwave
GitHub: bhushankelkar/shopwave
一个生产级电商后端学习项目,通过刻意制造分布式系统故障来教授事件驱动架构、Saga 模式和生产级故障响应。
Stars: 0 | Forks: 0
# ShopWave
一个生产级的电商后端,从零构建并被刻意破坏,用于学习分布式系统、事件驱动架构以及生产级故障响应。
这不是一个玩具般的 CRUD 应用。ShopWave 旨在承受(并在其中崩溃)真实的使用场景:并发库存竞争、支付幂等性问题、Kafka 消费者崩溃、连接池耗尽以及缓存雪崩——这些都是会在凌晨 3 点让待命工程师收到告警的故障模式。
## 为什么会有这个项目
大多数后端教程只教你如何编写 endpoint。而这个项目教你理解系统。这里的每个服务从第一天起就融入了生产级的考量——重试、幂等键、断路器、结构化日志、指标——然后被刻意破坏,以确切地理解真实系统是如何以及为什么会崩溃的。
## 架构
**阶段 1 — 单体架构** ([shopwave-monolith](https://github.com/YOUR_USERNAME/shopwave-monolith))
身份验证、产品目录、购物车、订单、支付、库存和通知作为一个单一的 Spring Boot 应用,通过 Kafka 事件进行内部通信。
**阶段 2 — 微服务**(即将推出)
单体应用将被拆分为独立的服务:`order-service`、`payment-service`、`inventory-service`、`notification-service`,并由 API Gateway 提供前端支撑。
## 核心订单流程
每一步都被设计为安全失败——通过补偿事务(saga 模式),在后续步骤失败时回滚之前的步骤。
## 技术栈
| 关注点 | 选择 |
|---|---|
| 语言 / 框架 | Java 21, Spring Boot 3 |
| 数据库 | PostgreSQL |
| 缓存 / 锁 | Redis |
| 消息队列 | Apache Kafka |
| 支付 | Stripe (测试模式) |
| 可观测性 | Prometheus + Grafana |
| 容器化 | Docker Compose |
| 部署 | DigitalOcean |
## 仓库结构
此父仓库将每个服务作为 git submodule 引用
## 状态
🚧 正在积极开发中——目前正在构建单体架构阶段。
标签:API集成, Spring Boot, 事件驱动架构, 分布式系统, 可观测性, 后端开发, 响应大小分析, 搜索引擎查询, 测试用例, 版权保护, 电商系统, 自定义请求头, 软件成分分析