Directories
¶
| Path | Synopsis |
|---|---|
|
adapters
|
|
|
asynq
Package asynq is the queue adapter — the concrete implementation of ports.Queue (and, in cmd/worker, the asynq Server that consumes tasks).
|
Package asynq is the queue adapter — the concrete implementation of ports.Queue (and, in cmd/worker, the asynq Server that consumes tasks). |
|
http
Package http is the HTTP adapter — the chi-based router that fronts the application use cases.
|
Package http is the HTTP adapter — the chi-based router that fronts the application use cases. |
|
http/api
Package api provides primitives to interact with the openapi HTTP API.
|
Package api provides primitives to interact with the openapi HTTP API. |
|
postgres
Package postgres holds the postgres adapter — concrete implementations of the persistence ports declared in internal/ports/.
|
Package postgres holds the postgres adapter — concrete implementations of the persistence ports declared in internal/ports/. |
|
provider
Package provider holds concrete implementations of ports.Provider — the strategy interface for delivering notifications through a specific channel (ADR-0004).
|
Package provider holds concrete implementations of ports.Provider — the strategy interface for delivering notifications through a specific channel (ADR-0004). |
|
redis
Package redis is the redis adapter — concrete implementations of the idempotency, rate-limiter, and status-broadcaster ports declared in internal/ports/.
|
Package redis is the redis adapter — concrete implementations of the idempotency, rate-limiter, and status-broadcaster ports declared in internal/ports/. |
|
websocket
Package websocket holds the WebSocket adapter: a Hub that tracks per-notification subscriptions, and (in phase 4) the HTTP handler that upgrades incoming connections and feeds them into the Hub.
|
Package websocket holds the WebSocket adapter: a Hub that tracks per-notification subscriptions, and (in phase 4) the HTTP handler that upgrades incoming connections and feeds them into the Hub. |
|
Package application holds the use cases that orchestrate domain entities via the ports interfaces.
|
Package application holds the use cases that orchestrate domain entities via the ports interfaces. |
|
Package domain holds the core entities, value objects, and invariants of the notification system.
|
Package domain holds the core entities, value objects, and invariants of the notification system. |
|
infrastructure
|
|
|
circuit
Package circuit wraps a ports.Provider in a sony/gobreaker circuit breaker so a flapping or downed provider cannot exhaust worker concurrency.
|
Package circuit wraps a ports.Provider in a sony/gobreaker circuit breaker so a flapping or downed provider cannot exhaust worker concurrency. |
|
clock
Package clock holds the production ports.Clock implementation.
|
Package clock holds the production ports.Clock implementation. |
|
config
Package config loads runtime configuration from environment variables (CLAUDE.md §3.7 / §2.7 — every value lives in docker-compose.yml, no .env file).
|
Package config loads runtime configuration from environment variables (CLAUDE.md §3.7 / §2.7 — every value lives in docker-compose.yml, no .env file). |
|
correlation
Package correlation owns the context key for the end-to-end request correlation id (CLAUDE.md §2.3).
|
Package correlation owns the context key for the end-to-end request correlation id (CLAUDE.md §2.3). |
|
id
Package id holds the concrete ports.IDGenerator implementation used by every binary.
|
Package id holds the concrete ports.IDGenerator implementation used by every binary. |
|
logger
Package logger owns the project's slog configuration (CLAUDE.md §12.2).
|
Package logger owns the project's slog configuration (CLAUDE.md §12.2). |
|
metrics
Package metrics owns the Prometheus collector definitions called out in CLAUDE.md §12.1.
|
Package metrics owns the Prometheus collector definitions called out in CLAUDE.md §12.1. |
|
tracing
Package tracing wires the OpenTelemetry SDK with a no-op default and an OTLP/gRPC exporter when an endpoint is configured (CLAUDE.md §12.4).
|
Package tracing wires the OpenTelemetry SDK with a no-op default and an OTLP/gRPC exporter when an endpoint is configured (CLAUDE.md §12.4). |
|
Package ports defines the interfaces (ports, in hexagonal architecture vocabulary) that the application layer uses to talk to the outside world.
|
Package ports defines the interfaces (ports, in hexagonal architecture vocabulary) that the application layer uses to talk to the outside world. |
Click to show internal directories.
Click to hide internal directories.