- 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
1.1 KiB
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 |