Files
pubsub/docs/architecture.md
glm-5.1 de7fc88f99 Simplify to transport-only: remove call protocol, add EventEnvelope, expand stream operators
- Remove src/call.ts (PendingRequestMap, CallEventSchema, CallError) — call protocol belongs in @alkdev/operations
- Add EventEnvelope type ({ type, id, payload }) as the cross-platform serialization contract
- Simplify createPubSub: replace PubSubPublishArgsByKey tuple model with PubSubEventMap; publish(type, id, payload) and subscribe(type, id) use explicit id for topic scoping
- Update Redis adapter to serialize/deserialize full EventEnvelope
- Expand operators: add take, reduce, toArray, batch, dedupe, window, flat, groupBy, chain, join
- Remove @alkdev/typebox runtime dependency (was only used by call.ts)
- Remove ./call sub-path export from package.json and tsup config
- Update all architecture docs to reflect transport-only scope, add Worker adapter, remove call protocol references
- Remove docs/architecture/call-protocol.md
- Update AGENTS.md with new source layout and transport-only principle
2026-05-01 19:40:25 +00:00

1.1 KiB

Architecture

This document has been decomposed into modular documents. See docs/architecture/ for the current architecture specification.

Document Content
architecture/README.md Overview, why this exists, interface contract, consumer context
architecture/api-surface.md createPubSub, EventEnvelope, PubSub types, operators
architecture/event-targets.md In-process, Redis, WebSocket, Worker adapters
architecture/iroh-transport.md Iroh P2P QUIC transport, framing, identity, hub/spoke
architecture/build-distribution.md Dependencies, project structure, tree-shaking, sub-path exports

Design Decisions

ADR Decision
001 Fork graphql-yoga pubsub rather than depend on it
002 Sub-path exports + peer deps for adapter isolation