chore: establish V1.1 recovery baseline
This commit is contained in:
@@ -0,0 +1,76 @@
|
||||
# ADR-001: 技术栈决策
|
||||
|
||||
**状态**: 已批准
|
||||
**日期**: 2026-08-28
|
||||
**决策者**: Codex(依据项目总指令)
|
||||
|
||||
---
|
||||
|
||||
## 背景
|
||||
|
||||
项目需要一个稳定、成熟、易维护的技术栈来支撑 V1.0 开发,同时满足国内运营环境和长期可维护性要求。
|
||||
|
||||
---
|
||||
|
||||
## 决策
|
||||
|
||||
### Backend
|
||||
|
||||
采用 **Java 21 + Spring Boot 3.x**。
|
||||
|
||||
理由:
|
||||
- 事务管理能力强,对 Match 并发、活动名额等核心场景友好
|
||||
- Spring Security 提供成熟的权限框架
|
||||
- 国内团队普遍熟悉,便于长期维护
|
||||
- 模块化单体架构天然支持
|
||||
- MyBatis-Plus 或 Spring Data JPA 均可,V1 优先使用 MyBatis-Plus(国内生态更成熟)
|
||||
|
||||
### Database
|
||||
|
||||
采用 **PostgreSQL**。
|
||||
|
||||
理由:
|
||||
- 成熟稳定,事务能力强
|
||||
- JSONB 支持良好,适合混合结构化/半结构化数据
|
||||
- 索引能力成熟,适合匹配查询优化
|
||||
- 开源无授权成本
|
||||
- 与 Spring Boot 集成完善
|
||||
|
||||
### Cache
|
||||
|
||||
采用 **Redis**。
|
||||
|
||||
用途:Session、Token 辅助、限流、推荐缓存、未读计数、分布式锁。
|
||||
|
||||
### Miniapp
|
||||
|
||||
采用 **微信原生小程序 + TypeScript**。
|
||||
|
||||
理由:
|
||||
- 无需引入跨端框架增加维护成本
|
||||
- 官方支持完善
|
||||
- 与微信登录/订阅消息生态无缝对接
|
||||
|
||||
### Admin Web
|
||||
|
||||
采用 **Vue 3 + TypeScript + Vite + Pinia + Element Plus**。
|
||||
|
||||
理由:
|
||||
- 国内团队生态成熟
|
||||
- Element Plus 组件库丰富,适合后台管理系统
|
||||
- Vite 构建快,开发体验好
|
||||
|
||||
### Deployment
|
||||
|
||||
采用 **Docker + Docker Compose + Nginx**。
|
||||
|
||||
暂不引入 K8s / Kafka / Elasticsearch 等复杂基础设施。
|
||||
|
||||
---
|
||||
|
||||
## 后果
|
||||
|
||||
- 团队需要熟悉 Java 21 / Spring Boot 3.x 生态
|
||||
- PostgreSQL 需要运维支持(备份、监控)
|
||||
- Redis 需要运维支持(持久化配置、内存管理)
|
||||
- 后期如有扩展需求,可从单体拆分为服务(Messaging → Match → Notification → Analytics 优先拆分)
|
||||
Reference in New Issue
Block a user