Directories
¶
| Path | Synopsis |
|---|---|
|
Package broker is the orchestrator facade.
|
Package broker is the orchestrator facade. |
|
ingress
Package ingress owns the WAL-first produce path: a produce request is durably accepted into this node's ingress WAL before a background dispatcher moves it to the partition owner and commits it to the partition log.
|
Package ingress owns the WAL-first produce path: a produce request is durably accepted into this node's ingress WAL before a background dispatcher moves it to the partition owner and commits it to the partition log. |
|
messaging
Package messaging owns the broker's data-plane: produce, consume, and ack.
|
Package messaging owns the broker's data-plane: produce, consume, and ack. |
|
runtime
Package runtime owns the broker's mutable per-process state: the lazy partition-log map, snapshot reader, and lifecycle hooks.
|
Package runtime owns the broker's mutable per-process state: the lazy partition-log map, snapshot reader, and lifecycle hooks. |
|
topics
Package topics owns the topic-CRUD surface of the broker.
|
Package topics owns the topic-CRUD surface of the broker. |
|
Package cluster provides the routing layer that proxies requests to the pod that owns the target partition.
|
Package cluster provides the routing layer that proxies requests to the pod that owns the target partition. |
|
controller
Package controller runs partition assignment and member health monitoring on the Raft leader.
|
Package controller runs partition assignment and member health monitoring on the Raft leader. |
|
Package consumer implements broker-side consumer state: receipt handles and the per-partition in-flight reservation table that backs visibility timeouts, acks, and redelivery.
|
Package consumer implements broker-side consumer state: receipt handles and the per-partition in-flight reservation table that backs visibility timeouts, acks, and redelivery. |
|
domain
|
|
|
topic
Package topic defines the value types used across the broker, metastore, and partition layers.
|
Package topic defines the value types used across the broker, metastore, and partition layers. |
|
user
Package user defines Narad's identity and permission value types: users, grants, and the pattern matching that decides whether a grant covers a topic.
|
Package user defines Narad's identity and permission value types: users, grants, and the pattern matching that decides whether a grant covers a topic. |
|
Package errs defines the named error sentinels shared across narad.
|
Package errs defines the named error sentinels shared across narad. |
|
persistence
|
|
|
metastore
Package metastore is the Raft-backed metadata store for multi-node narad.
|
Package metastore is the Raft-backed metadata store for multi-node narad. |
|
storage
Package storage implements the per-partition append-only record log.
|
Package storage implements the per-partition append-only record log. |
|
storage/codec
Package codec defines the Codec interface and provides the zstd and no-op implementations used by the storage layer.
|
Package codec defines the Codec interface and provides the zstd and no-op implementations used by the storage layer. |
|
wal
Package wal provides a small segmented write-ahead log with grouped fsync.
|
Package wal provides a small segmented write-ahead log with grouped fsync. |
|
platform
|
|
|
clusterrpc
Package clusterrpc is Narad's node-to-node RPC transport: length-framed request/reply frames (internal/protocol/clusterwire) multiplexed over pooled QUIC streams.
|
Package clusterrpc is Narad's node-to-node RPC transport: length-framed request/reply frames (internal/protocol/clusterwire) multiplexed over pooled QUIC streams. |
|
config
Package config defines Narad's runtime configuration and the rules for loading it.
|
Package config defines Narad's runtime configuration and the rules for loading it. |
|
httpclient
Package httpclient builds HTTP clients tuned for Narad's node-to-node data plane, where a handful of peers carry heavy concurrent traffic.
|
Package httpclient builds HTTP clients tuned for Narad's node-to-node data plane, where a handful of peers carry heavy concurrent traffic. |
|
netaddr
Package netaddr compares listen addresses with peer addresses that may or may not carry a host part.
|
Package netaddr compares listen addresses with peer addresses that may or may not carry a host part. |
|
observability/logger
Package logger constructs the project's structured logger.
|
Package logger constructs the project's structured logger. |
|
observability/metrics
Package metrics owns Narad's Prometheus metrics surface.
|
Package metrics owns Narad's Prometheus metrics surface. |
|
partition
Package partition selects the partition a produce request lands on.
|
Package partition selects the partition a produce request lands on. |
|
schema
Package schema validates message payloads against per-topic JSON Schemas.
|
Package schema validates message payloads against per-topic JSON Schemas. |
|
protocol
|
|
|
clusterwire
Package clusterwire defines the cluster stream-framing protocol used for node-to-node RPC over QUIC.
|
Package clusterwire defines the cluster stream-framing protocol used for node-to-node RPC over QUIC. |
|
node
Package node defines the node-to-node RPC wire format carried as opaque payloads inside clusterwire frames.
|
Package node defines the node-to-node RPC wire format carried as opaque payloads inside clusterwire frames. |
|
Package security implements authentication and authorization for Narad's HTTP API: Basic-auth verification against bcrypt-hashed users replicated in the metastore, with a per-node cache so the hot path never pays bcrypt's deliberate cost.
|
Package security implements authentication and authorization for Narad's HTTP API: Basic-auth verification against bcrypt-hashed users replicated in the metastore, with a per-node cache so the hot path never pays bcrypt's deliberate cost. |
|
transport
|
|
|
httpserver
Package httpserver hosts the HTTP transport: server lifecycle, routing, and middleware.
|
Package httpserver hosts the HTTP transport: server lifecycle, routing, and middleware. |
|
httpserver/handlers
Package handlers carries the shared *Set and helper methods used by every HTTP handler in the per-domain subpackages (handlers/topics, handlers/messaging, handlers/health).
|
Package handlers carries the shared *Set and helper methods used by every HTTP handler in the per-domain subpackages (handlers/topics, handlers/messaging, handlers/health). |
|
httpserver/handlers/health
Package health holds the liveness and readiness HTTP handlers.
|
Package health holds the liveness and readiness HTTP handlers. |
|
httpserver/handlers/messaging
Package messaging holds the data-plane HTTP handlers — produce, consume, and ack under /v1/topics/{topic}.
|
Package messaging holds the data-plane HTTP handlers — produce, consume, and ack under /v1/topics/{topic}. |
|
httpserver/handlers/topics
Package topics holds the HTTP handlers for the /v1/topics surface (create/list/get/delete/alter).
|
Package topics holds the HTTP handlers for the /v1/topics surface (create/list/get/delete/alter). |
|
httpserver/handlers/users
Package users holds the HTTP handlers for the /v1/users surface: create, list, get, delete, and password/grant updates.
|
Package users holds the HTTP handlers for the /v1/users surface: create, list, get, delete, and password/grant updates. |
Click to show internal directories.
Click to hide internal directories.