proxy-pool/docs/adr/README.md

35 lines
1.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 架构决策记录
## ADR-001控制面与数据面分离
**状态:** 接受。
Gateway 只依赖本地不可变 SnapshotProvider、数据库、配置重载和健康聚合
位于 Controller/Checker。该选择隔离外部 I/O 抖动,并允许数据面按 QPS、
控制面按 Provider/库存规模独立扩容。
## ADR-002Distribution 使用独占提取
**状态:** 接受并覆盖早期 Lease 方案。
成功响应前在一个事务中执行 `AVAILABLE -> EXTRACTED`。系统保存审计事实,
但不提供 release、renew 或使用跟踪。这样契合“拿走真实代理后平台不再管理”
的最终产品语义,并消除重复发放。
## ADR-003单 Worker 所有权
**状态:** 接受。
一个 Proxy 同一时刻至多归属一个 WorkerGateway 在本地维护 Active/Reserved。
Distribution 只提取无所有权 Proxy回收时执行 drain/ACK/归零/解除所有权。
该选择避免每请求访问 Redis 做全局并发计数。
## ADR-004PostgreSQL 权威、Redis 可重建
**状态:** 接受。
Proxy 状态、Extraction、配置版本和 Outbox 由 PostgreSQL 持久化。Redis 只
承担 Leader、短期速率与心跳等协调Redis 丢失后可从权威状态恢复,避免
双写状态成为不可判定的事实源。