warrenchen 7647a8cb3b feat: Add initial database migration for SendEngine with new tables and relationships
- Created migration file for rebaseline of the database schema.
- Added tables: auth_clients, tenants, auth_client_keys, webhook_nonces, events_inbox, lists, campaigns, subscriptions, send_jobs, delivery_summary, and send_batches.
- Defined relationships and constraints between tables.
- Updated DbContext and model snapshot to reflect new entities and their configurations.
- Removed deprecated ListMember entity and its references.
- Introduced Dockerfile for building and running the SendEngine application.
- Enhanced installer program to support tenant creation and webhook client management with Member Center integration.
2026-02-19 17:21:06 +09:00
2026-02-10 16:08:04 +09:00
2026-02-10 16:08:04 +09:00
2026-02-10 16:08:04 +09:00
2026-02-10 16:08:04 +09:00
2026-02-10 16:08:04 +09:00

Send Engine發送引擎

此專案為獨立的發送引擎,負責寄送、節流、退信處理與追蹤。文件統一放在 docs/

目標MVP

  • 接收 Member Center 的訂閱事件activated / unsubscribed / preferences.updated
  • 多租戶名單快照(依 tenant/list且僅增量更新
  • 管理 Campaign / Send Job 與排程
  • 對接 ESPSES / SendGrid / Mailgun
  • 記錄投遞結果與退信(必要時回寫 Member Center

既定條件

  • 與 Member Center 相同框架C# .NET Core
  • Send engine 不提供跨租戶名單查詢
  • 事件同步採 event/queue 或 webhook二擇一即可
  • DBPostgreSQL

範圍(第一階段)

  • 事件 ingest 與名單增量同步
  • Campaign / Send Job 基本流程
  • Sender Adapter至少一種 ESP
  • 投遞與退信記錄
  • SES 回流建議採 Configuration Set -> SNS -> SQS -> Worker

非目標(暫不處理)

  • 自建 SMTP server
  • 跨租戶名單查詢
  • 行銷自動化或行為追蹤

文件

  • docs/DESIGN.md:系統設計總覽、核心模組與資料流
  • docs/FLOWS.md:主要業務流程(同步、寄送、退信)
  • docs/OPENAPI.mdAPI 規格說明與補充規則
  • docs/SCHEMA.sql:資料庫 schemaPostgreSQL
  • docs/TECH_STACK.md:技術棧與選型
  • docs/INSTALL.md:安裝、初始化與維運指令
  • docs/USE_CASES.md:需求用例(角色、情境、驗收)

專案結構

mass_mail_engine/
├── src/
│   ├── SendEngine.Api/           # REST API事件 ingest、送信、管理 API
│   ├── SendEngine.Installer/     # 安裝與初始化 CLImigrate/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
Description
No description provided
Readme 241 KiB
Languages
C# 99.1%
Dockerfile 0.9%