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, 事件驱动架构, 分布式系统, 可观测性, 后端开发, 响应大小分析, 搜索引擎查询, 测试用例, 版权保护, 电商系统, 自定义请求头, 软件成分分析