internal/

directory
v0.0.0-...-cfa0f90 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 29, 2026 License: MIT

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.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL