# 技术选型（企业级、可平滑演进微服务）

## 网关与服务治理
- API 网关：Kong（DB 模式，Postgres 持久化，decK 管理配置）
- 东西向：预留 Istio/Linkerd（后期启用）
- 配置即代码：decK + GitOps

## 通信与异步
- 事件总线：Kafka/Redpanda（生产：Kafka；本地可 Redpanda/Kafka 单机）
- 任务队列：Redis + Bull/BullMQ（先用 Bull，后续可迁移 BullMQ）
- 一致性：Outbox（沿用 jobs/jobs_failed 表规范，服务内原子提交）

## 鉴权与安全
- JWT（RS256，预留 JWK 发布）
- RBAC（细粒度，以资源-动作矩阵）
- 速率限制：Kong rate-limiting + 应用内 Throttler
- CORS/Helmet/CSRF（按场景启用）

## 数据库与存储
- MySQL 8（主库），TypeORM
- 读写分离/连接池：按环境配置
- 对象存储：本地/阿里云/腾讯云（通过 vendor storage 适配）

## 缓存
- Redis（会话、热点、分布式锁）

## 可观测性
- 日志：Winston + 日志切割；透传 X-Request-ID、traceparent
- 指标：prom-client 暴露 /metrics，Kong Prometheus 插件
- 链路追踪：OpenTelemetry（后期接入 Jaeger/Tempo）

## 配置与密钥
- dotenv + Nest Config；生产建议 Vault/Secret Manager

## CI/CD 与部署
- CI：Lint/Test/Build；Docs 同步
- CD：Docker/K8s + Helm（后期）
- 灰度/回滚：镜像版本化与蓝绿/金丝雀

## 前端协作
- 统一 /docs Swagger；docs 侧按 prefix（/api、/adminapi）拆分生成
- 客户端透传 X-Request-ID、traceparent；处理 429 等网关错误

## 选型结论
- 现阶段：单体内模块化 + 统一规范（接口/事件/作业），外围先行（Kong、Metrics、日志追踪）
- 演进阶段：拆分域服务 → 事件化 → 服务间通信迁移到 Kafka 