项目案例#Go#go-zero#MySQL#Redis#RabbitMQ#React#Next.js#微信小程序#Docker
多租户 SaaS 收银系统
基于 go-zero 的多商户收银系统,覆盖租户、门店、商品、库存、会员、交易、支付与对账边界。

项目背景
这是一套仍在持续建设的多商户 SaaS 收银系统。目标不是堆叠管理页面,而是先把租户、门店、库存、交易和支付之间的责任边界建立清楚。项目包含 8 个服务、React 管理端和微信小程序端,代码与架构文档均保存在本地工程中。
我的工作
设计 Gateway、认证、商户、商品、库存、会员、交易和支付服务的接口边界
建立租户、门店两级数据上下文,并在公共中间件统一校验
实现幂等键、Outbox、支付回调验签和服务端最终状态确认
维护数据库迁移、OpenAPI、Proto、Docker 与 CI 检查流程
关键设计
所有业务请求先在网关完成身份解析,再把可信的租户与门店上下文传给下游。服务不会接受客户端随意指定的数据归属。交易和支付拆分后,通过幂等键防止重复下单,通过事件与主动查单修正异步结果。
客户端展示的是交互状态,服务端确认的才是交易最终状态。
工程取舍
当前阶段优先保证服务边界、契约和测试可以稳定演进,没有把微服务数量当成目标。对于仍能在单服务内完成的流程,保持同步调用;只有支付通知、库存流水等需要解耦和追溯的链路才引入消息与 Outbox。
验证方式
API 与 Proto 生成差异检查
Go race test、vet、lint 和多服务构建
MySQL migration 记录与可重复种子数据
支付回调、幂等冲突和租户越权测试
当前状态
私有工程案例,仍在持续开发。页面不提供虚假的在线地址或公开仓库链接;这里展示的是已经落到代码、迁移和测试中的架构能力。