- Copy core source from alkhub_ts/packages/core/pubsub/ with import path fixups (typed_event_target.ts → types.ts, .ts → .js extensions) - Make PubSubPublishArgsByKey exported (was private type, needed by barrel) - Add package.json with sub-path exports and optional peer deps (ioredis) - Add tsup.config.ts with multi-entry + splitting for tree-shaking - Add tsconfig.json, vitest.config.ts, .gitignore - Add AGENTS.md with project conventions and adapter checklist - Add architecture docs following taskgraph/alkhub pattern: docs/architecture/README.md, api-surface.md, event-targets.md, iroh-transport.md, build-distribution.md - Add ADRs: 001-graphql-yoga-fork, 002-tree-shake-pattern - Copy migration research doc to docs/research/migration.md - Dual-license MIT OR Apache-2.0 (matching taskgraph)
18 lines
1.1 KiB
Markdown
18 lines
1.1 KiB
Markdown
# Architecture
|
|
|
|
> **This document has been decomposed into modular documents.** See [docs/architecture/](architecture/) for the current architecture specification.
|
|
|
|
| Document | Content |
|
|
|----------|---------|
|
|
| [architecture/README.md](architecture/README.md) | Overview, why this exists, interface contract, consumer context |
|
|
| [architecture/api-surface.md](architecture/api-surface.md) | createPubSub, PubSub types, operators |
|
|
| [architecture/event-targets.md](architecture/event-targets.md) | In-process, Redis, WebSocket adapters |
|
|
| [architecture/iroh-transport.md](architecture/iroh-transport.md) | Iroh P2P QUIC transport, framing, identity, hub/spoke |
|
|
| [architecture/build-distribution.md](architecture/build-distribution.md) | Dependencies, project structure, tree-shaking, sub-path exports |
|
|
|
|
### Design Decisions
|
|
|
|
| ADR | Decision |
|
|
|-----|----------|
|
|
| [001](architecture/decisions/001-graphql-yoga-fork.md) | Fork graphql-yoga pubsub rather than depend on it |
|
|
| [002](architecture/decisions/002-tree-shake-pattern.md) | Sub-path exports + peer deps for adapter isolation | |