echd — Echo on Encore · E3.1 · dive
The Wire Fence
The protocol is the database's own wire behind one version fence — no broker, no library to bless — so any runtime that speaks it stands in the same consumer group as the BEAM.
echd speaks in the present tense over a build ladder. Every module, verb, key, and port named on this page is real; the composition into one standing platform is the vision the ladder builds.
The dive
docs/echo_mq/emq.streams.md:13-16 · specs/emq3/emq3.3.mdThe bus has no broker. There is no EchoMQ process sitting between a client and the data, no bespoke wire format to serialize, no SDK to port to a new language. The protocol is Valkey commands and inline Lua, declared behind one version fence — echomq:3.0.0 — and that is the whole interface. A peer conforms to the fence, not to a client library, because there is no client library to conform to: there is the database's own wire, and a version number stamped on it.
That single fact is what makes the bus polyglot, and polyglot is not an aspiration here — it is a tested property. Because every runtime already ships a Valkey client, every runtime is a first-class peer the moment it issues the same commands against the same keys. A Go worker and a BEAM node are not bridged; they are equals on one group. The conformance suite makes the equality concrete: it stands a non-BEAM reader in the same consumer group as the BEAM consumers and drains the same pending-entries list — the seam demonstrated on the wire, not asserted in a doc.
The fence and its peers
hover a partechomq:3.0.0 — and speaks nothing but Valkey commands and inline Lua behind it. There is no broker process, no serialization format to agree on, no client library to port: the wire is the database's own wire.Hover or focus a part to read it; click to pin. Without scripting, all four read in sequence.
Additive is minor, a wire break is major
docs/echo_mq/emq.design.md · emq.streams.md:13-16The version on the fence is not decoration; it is a contract about change. Adding a command — a new verb inside one of the twelve families — is additive: old peers never issued it, so they keep working untouched. That is a protocol minor, and minors are cheap. Changing what an existing byte on the wire means — a key's shape, a field's order, a lease's encoding — is a major, because a peer built against the old meaning now reads the new bytes wrong. The fence makes the two kinds of change impossible to confuse: a peer checks the version and knows exactly which contract it is holding.
This is why a rung that re-drives a shipped script freezes the script's bytes to the last shipped version and proves it — a re-use rung is not allowed to quietly turn a minor into a major. The wire is hard-pinned because it broke once, and the lesson was not merely to fix that break; it was to make silent breaks structurally impossible. The polyglot promise depends on it: a Go peer trusts echomq:3.0.0 to mean today what it meant yesterday, and the fence is the mechanism that keeps that trust honest across every runtime on the group.
The rule
one line to carryThe wire rule — the protocol is the database's own wire, so any runtime that speaks it is a peer. No broker to port, no library to bless: a peer conforms to the version fence, not an SDK. Additive change is a minor and old peers keep working; changing what a byte means is a major and the fence is what makes the difference impossible to miss.
Doors
the seam, provenEchoMQ — the protocol, in depth
The conformance suite and the version discipline: how the fence is registered, checked, and held across runtimes.
the non-BEAM reader — the polyglot seam as a running test.
/redis-patternsRedis Patterns, Applied
Consumer groups and the pending-entries list as patterns — the machinery the polyglot seam rides.
one group, many readers — at-least-once across languages.
References
sources · relatedSources
- Valkey — Streamsconsumer groups and the pending-entries list every peer, in any language, shares
- Valkey — Programmabilitycommands and inline Lua — the database's own wire a peer conforms to instead of an SDK
Related
- E3.1 — One Bus, Twelve Familiesthe module this dive closes
- the-braced-keyspacethe rule before this one: the keyspace the fence versions
- E3 — The Bus — EchoMQ Supersedesthe supersessions this protocol delivers