2.4 KiB
2.4 KiB
Send Engine(發送引擎)
此專案為獨立的發送引擎,負責寄送、節流、退信處理與追蹤。文件統一放在 docs/。
目標(MVP)
- 接收 Member Center 的訂閱事件(activated / unsubscribed / preferences.updated)
- 多租戶名單快照(依 tenant/list)且僅增量更新
- 管理 Campaign / Send Job 與排程
- 對接 ESP(SES / SendGrid / Mailgun)
- 記錄投遞結果與退信(必要時回寫 Member Center)
既定條件
- 與 Member Center 相同框架(C# .NET Core)
- Send engine 不提供跨租戶名單查詢
- 事件同步採 event/queue 或 webhook(二擇一即可)
- DB:PostgreSQL
範圍(第一階段)
- 事件 ingest 與名單增量同步
- Campaign / Send Job 基本流程
- Sender Adapter(至少一種 ESP)
- 投遞與退信記錄
- SES 回流建議採
Configuration Set -> SNS -> SQS -> Worker
非目標(暫不處理)
- 自建 SMTP server
- 跨租戶名單查詢
- 行銷自動化或行為追蹤
文件
docs/DESIGN.md:系統設計總覽、核心模組與資料流docs/FLOWS.md:主要業務流程(同步、寄送、退信)docs/OPENAPI.md:API 規格說明與補充規則docs/SCHEMA.sql:資料庫 schema(PostgreSQL)docs/TECH_STACK.md:技術棧與選型docs/INSTALL.md:安裝、初始化與維運指令docs/USE_CASES.md:需求用例(角色、情境、驗收)
專案結構
mass_mail_engine/
├── src/
│ ├── SendEngine.Api/ # REST API(事件 ingest、送信、管理 API)
│ ├── SendEngine.Installer/ # 安裝與初始化 CLI(migrate/init/admin)
│ ├── SendEngine.Application/ # 應用層介面與 DTO
│ ├── SendEngine.Infrastructure/# EF Core、ESP Adapter、服務實作
│ └── SendEngine.Domain/ # 領域實體與常數
├── docs/ # 專案文件
├── .vscode/ # 本機開發啟動與工作設定
├── SendEngine.sln # Solution
└── README.md
Build
使用 VS Code Run Build Task(預設執行 dotnet build SendEngine.sln)。
待確認事項
- 事件系統選擇(Kafka/RabbitMQ/SNS+SQS / Webhook)
- ESP 優先順序(SES / SendGrid / Mailgun)
- 退信回寫的規則(hard bounce / soft bounce)
- 追蹤事件範圍(open / click / unsubscribe)