01
歷史接即時
history 回傳 resume_from,拿去接 SSE/WebSocket;官方 SDK 再依 partition cursor 去重。
不是同一層的替代品
MsgMesh 底層使用 Kafka,但對外提供的是 HTTP、SSE、WebSocket、Webhook、SDK 與 MCP。選擇題是:你的團隊要擁有 broker,還是要直接使用應用層交付路徑?
核心差異
| 問題 | MsgMesh | 自架 Kafka |
|---|---|---|
| 瀏覽器即時接收 | 直接使用 SSE/WebSocket、心跳、cursor 與 SDK 重連 | 自行建立 gateway、鑑權、連線生命週期與重連邏輯 |
| Webhook | 內建投遞、短暫重試、DLQ 與重放 | 自行寫 consumer、重試分類、簽章、DLQ 與操作工具 |
| AI agent | 官方 MCP Server 提供發布、等待事件與治理工具 | 自行建立 MCP server 或事件到 agent 的橋接層 |
| 語義 | SSE/WS/Webhook 為 at-least-once;長輪詢為 at-most-once | 可用 transactions、read_committed 與 Kafka Streams 設計 exactly-once 流程 |
| 保留與調校 | 依方案固定 3 或 30 天;無 compaction 與 per-topic 自訂 | 自行控制 retention、compaction、partition、壓縮與 broker 引數 |
| 客戶端生態 | HTTP、SSE、WS;官方 JavaScript 與 Python SDK | Kafka wire protocol 與 Java、Go、Rust、.NET 等完整生態 |
MsgMesh 替你處理
history 回傳 resume_from,拿去接 SSE/WebSocket;官方 SDK 再依 partition cursor 去重。
長期金鑰留在後端,再簽發最長 15 分鐘、限定操作/topic/room 的 token。
租戶由憑證推導,實體 topic 與 consumer group 自動加字首,呼叫端無法指定其他租戶。
這些能力不代表應用可以省略冪等、sender 身分驗證、業務快照或 token-broker;兩種選擇都要由你的系統負責這些部分。
該選自架的時機
你需要 RF≥2、多 broker、跨 AZ/區域、明確 RPO/RTO,或必須用自己的 SLA 對客戶負責。
你需要 Kafka Streams、Connect、ksqlDB、事務處理、log compaction 或廣泛語言客戶端。
你需要批次生產、壓縮、partition 策略、磁碟與網路調校,並有團隊能持續營運。
誠實邊界
Kafka 的 exactly-once 與 transaction 範圍請以 Apache Kafka 官方 Design 檔案為準;寫入外部系統仍需要與目的系統協調。
延伸閱讀
用 Free 驗證應用層交付路徑,再根據可靠性與控制需求決定。