Documentation
¶
Overview ¶
Package messagequeue holds Stovepipe's internal message-queue contract: the wire payloads for the pipeline queues Stovepipe owns, defined by the proto files in proto/ and generated into protopb/. The proto is the language-neutral authority; the generated Go types in protopb are the binding for Go callers.
It is internal — used only within the Stovepipe domain — so it lives under stovepipe/core rather than api/. The message types are generated into protopb; this package adds only generic protojson glue (Marshal/Unmarshal) and the topic-key reflection lookup (TopicKeys), so there is no per-message serialization code. Payloads are serialized as protobuf JSON, not binary, so the MySQL-backed queue keeps storing self-describing JSON. The topic key that carries each payload is declared on the message itself via the topic_keys proto option (see api/base/messagequeue).
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Marshal ¶
Marshal serializes any contract message to protojson bytes for the queue payload, keeping the proto field names (snake_case) on the wire.
Types ¶
type BuildRequest ¶
type BuildRequest = protopb.BuildRequest
BuildRequest is the payload process publishes to the build stage: the admitted request id whose persisted strategy and baseline build reloads.
type ProcessRequest ¶
type ProcessRequest = protopb.ProcessRequest
ProcessRequest is the payload ingest publishes to the process stage: the minted request id to validate.
type TopicKey ¶
TopicKey is the typed identifier used to look up a queue backend, topic name, and subscription config in a consumer.TopicRegistry. The constants below are the logical topic keys for Stovepipe's internal pipeline stages; they are the same strings each message lists in its topic_keys option.
const ( // TopicKeyProcess carries newly accepted requests from ingest to the process // stage. ingest publishes a ProcessRequest (the request id) here; the process // controller consumes it, reloads the Request, and decides the build strategy. TopicKeyProcess TopicKey = "process" // TopicKeyBuild carries admitted requests from process to build. process // publishes a BuildRequest (the request id) after it persists the strategy // and baseline; build reloads the Request from storage. TopicKeyBuild TopicKey = "build" )