跳转到内容

x/messaging Primer

Beta(应用侧服务层)— API 在 minor 版本内保持稳定。下级包(x/messaging/mqx/messaging/pubsubx/messaging/schedulerx/messaging/webhook)仍为实验性。采用前请查看发布策略扩展成熟度

当你已经通过 x/* 家族 确认问题明显属于 messaging 家族,而不是最小 runnable path 时,就打开这一页。

x/messaging 是 queue、pubsub、scheduler 与 webhook 编排在家族层面的 canonical app-facing 入口。

家族级判断先从 x/messaging 开始;直接依赖 x/messaging/mqx/messaging/pubsubx/messaging/schedulerx/messaging/webhook 前,再检查下级包成熟度。生产采用前请检查 x/messaging/module.yaml发布策略扩展成熟度

  • 任务是在做消息发送编排
  • 改动属于应用侧的 queue、pubsub、scheduler 或 webhook wiring
  • 工作需要一个家族级 messaging 入口,而不是更底层的 primitive
  • 任务真正是 application bootstrap
  • 工作是稳定根抽象设计
  • 任务已经明确窄化到 x/messaging/mqx/messaging/pubsubx/messaging/schedulerx/messaging/webhook 中的低层问题
  1. x/messaging/module.yaml
  2. x/messaging/entrypoints.go
  3. specs/extension-taxonomy.yaml

直接打开 subordinate package 前,先使用 family-level alias 和 constructor:

  • messaging.NewInProcBroker 搭配 BrokerMessageBrokerSubscription:进程内 pubsub wiring
  • messaging.NewWebhookServicemessaging.NewWebhookMemStoreVerifyWebhookHMAC:webhook 路径
  • messaging.New:面向应用的 messaging service
  • messaging.NewMemReceiptStore:示例和测试里的 receipt 持久化
  • messaging.NewLogSMSProviderNewLogEmailProvider 与 HTTP provider constructor:delivery adapter
这些问题应先从 x/messaging 开始只有当任务已经明确窄化后,才继续下钻到这些 sibling
家族级、应用侧的 queue、pubsub、scheduler 与 webhook 编排x/messaging/mq 中的 durable queue primitive 与 worker coordination
决定某个服务应该先打开哪个 messaging entrypointx/messaging/pubsub 中的 in-process broker primitive
在不重写 canonical app path 的前提下保持编排显式x/messaging/scheduler 中的 scheduling primitive
那些仍然比单一协议 primitive 更宽的 messaging-family ownership 问题x/messaging/webhook 中的 inbound verification 或 outbound delivery 机制

x/messaging 的价值,在于阻止读者过早跳进某个 sibling 包。家族入口之所以存在,就是为了让消息类工作先从正确的作用域开始,再进一步收窄。