Help us shape the future of Go! Take the 2026 Go Developer Survey

clients/

directory
v0.3.6 Latest Latest
Warning

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

Go to latest
Published: Oct 11, 2026 License: MIT

Directories

Path Synopsis
Package analytics builds the AnalyticsStore: the zero-infrastructure stub (the default) or the Cassandra-protocol store (Apache Cassandra locally, Amazon Keyspaces in staging, chosen by the nested Cassandra config).
Package analytics builds the AnalyticsStore: the zero-infrastructure stub (the default) or the Cassandra-protocol store (Apache Cassandra locally, Amazon Keyspaces in staging, chosen by the nested Cassandra config).
cassandra
Package cassandra is the Cassandra-protocol AnalyticsStore (Apache Cassandra or Amazon Keyspaces behind clients/cassandra.Session).
Package cassandra is the Cassandra-protocol AnalyticsStore (Apache Cassandra or Amazon Keyspaces behind clients/cassandra.Session).
decorators
Package decorators wraps an AnalyticsStore with resilience and observability, in the order recovery → metrics → tracing → circuit breaker → timeout (outermost first), and wraps a clients/cassandra.Session's writes in the client stack.
Package decorators wraps an AnalyticsStore with resilience and observability, in the order recovery → metrics → tracing → circuit breaker → timeout (outermost first), and wraps a clients/cassandra.Session's writes in the client stack.
stub
Package stub is the default analytics store: it accepts every write and answers every query with an empty result, so the graph boots with no Cassandra.
Package stub is the default analytics store: it accepts every write and answers every query with an empty result, so the graph boots with no Cassandra.
Package cache provides a builder for ByteCache implementations with multiple backends.
Package cache provides a builder for ByteCache implementations with multiple backends.
decorators
Package decorators provides cache decorators for cross-cutting concerns.
Package decorators provides cache decorators for cross-cutting concerns.
redis
Package redis provides a Redis-backed cache implementation with singleflight support.
Package redis provides a Redis-backed cache implementation with singleflight support.
Package cassandra builds the gocql cluster configuration for a self-managed Apache Cassandra (local Compose, dev): a token-aware, DC-aware host policy, optional password auth and TLS.
Package cassandra builds the gocql cluster configuration for a self-managed Apache Cassandra (local Compose, dev): a token-aware, DC-aware host policy, optional password auth and TLS.
keyspaces
Package keyspaces builds the gocql cluster configuration for Amazon Keyspaces: the regional endpoint on port 9142, mandatory TLS with host verification, SigV4 authentication (the AWS SigV4 gocql plugin, credentials from an AWS credentials provider — the default chain, IRSA in-cluster) and DisableInitialHostLookup, per AWS guidance.
Package keyspaces builds the gocql cluster configuration for Amazon Keyspaces: the regional endpoint on port 9142, mandatory TLS with host verification, SigV4 authentication (the AWS SigV4 gocql plugin, credentials from an AWS credentials provider — the default chain, IRSA in-cluster) and DisableInitialHostLookup, per AWS guidance.
Package connector builds ConnectorSources for the connector family: S3 now, a future GDrive/Salesforce kind added as a new case + sibling package (ARCHITECTURE.md#the-one-idea; the foundation/logger NewFromConfig pattern).
Package connector builds ConnectorSources for the connector family: S3 now, a future GDrive/Salesforce kind added as a new case + sibling package (ARCHITECTURE.md#the-one-idea; the foundation/logger NewFromConfig pattern).
decorators
Package decorators wraps a connector ConnectorSource with the shared client observability stack (metrics/tracing/logging).
Package decorators wraps a connector ConnectorSource with the shared client observability stack (metrics/tracing/logging).
s3
Package s3 implements the S3 ConnectorSource for the connector family: a "test connection" probe that lists a bounded page under a connector's bucket/prefix using the connector's OWN credentials, over the shared StorageClient (INJECTED — this package never imports go/clients/storage, so there is no lateral same-layer import).
Package s3 implements the S3 ConnectorSource for the connector family: a "test connection" probe that lists a bounded page under a connector's bucket/prefix using the connector's OWN credentials, over the shared StorageClient (INJECTED — this package never imports go/clients/storage, so there is no lateral same-layer import).
Package database is the database client tier: it selects a SQL connection-pool backend — PostgreSQL today (postgres/) — by Kind and returns the interfaces.DatabasePool contract, so switching database engines is a config change, not a caller edit.
Package database is the database client tier: it selects a SQL connection-pool backend — PostgreSQL today (postgres/) — by Kind and returns the interfaces.DatabasePool contract, so switching database engines is a config change, not a caller edit.
postgres
Package postgres is the PostgreSQL backend of the database client tier: a lifecycle-managed *sql.DB pool (Client) plus ORM-independent pool utilities — a boot-time reachability probe (Ping) and a Prometheus pool-stats collector.
Package postgres is the PostgreSQL backend of the database client tier: a lifecycle-managed *sql.DB pool (Client) plus ORM-independent pool utilities — a boot-time reachability probe (Ping) and a Prometheus pool-stats collector.
Package decorators provides the shared client-boundary resilience stack: one reusable builder that composes, from outermost to innermost,
Package decorators provides the shared client-boundary resilience stack: one reusable builder that composes, from outermost to innermost,
Package interceptorcore holds the framework-agnostic resilience decisions shared by the gRPC and Connect interceptor stacks.
Package interceptorcore holds the framework-agnostic resilience decisions shared by the gRPC and Connect interceptor stacks.
Package jobs provides a factory for background job queue implementations with multiple backends.
Package jobs provides a factory for background job queue implementations with multiple backends.
decorators
Package decorators composes the Job decorator stack (ARCHITECTURE.md#decorator-order) around a scheduled job function: LeaderElection → RateLimit → Retry → Timeout → Tracing → Metrics → Logging → Job.
Package decorators composes the Job decorator stack (ARCHITECTURE.md#decorator-order) around a scheduled job function: LeaderElection → RateLimit → Retry → Timeout → Tracing → Metrics → Logging → Job.
river
Package river provides River-based job queue integration: Runtime (a pgxpool-backed River client that works jobs, with leader-elected periodic jobs), InsertClient (an enqueue-only producer), and Migrate (River's own schema).
Package river provides River-based job queue integration: Runtime (a pgxpool-backed River client that works jobs, with leader-elected periodic jobs), InsertClient (an enqueue-only producer), and Migrate (River's own schema).
Package lock builds a config-selected core/interfaces.Locker — a DistributedLock (keyed, token-fenced, best-effort) plus Hold, the managed acquire-with-watchdog helper a single-active-operation guard depends on.
Package lock builds a config-selected core/interfaces.Locker — a DistributedLock (keyed, token-fenced, best-effort) plus Hold, the managed acquire-with-watchdog helper a single-active-operation guard depends on.
decorators
Package decorators composes cross-cutting concerns — resilience (retry, circuit-breaker, timeout) and observability (logging, metrics, tracing) — around any core/interfaces.DistributedLock, without touching the backend.
Package decorators composes cross-cutting concerns — resilience (retry, circuit-breaker, timeout) and observability (logging, metrics, tracing) — around any core/interfaces.DistributedLock, without touching the backend.
local
Package local provides an in-process DistributedLock backend for single-pod deployments (dev / replica=1), where cross-process coordination is unnecessary.
Package local provides an in-process DistributedLock backend for single-pod deployments (dev / replica=1), where cross-process coordination is unnecessary.
redis
Package redis provides a cross-pod DistributedLock backend over Redis, for multi-replica deployments (staging/prod).
Package redis provides a cross-pod DistributedLock backend over Redis, for multi-replica deployments (staging/prod).
Package messaging provides a factory for message publisher and subscriber implementations with multiple backends.
Package messaging provides a factory for message publisher and subscriber implementations with multiple backends.
decorators
Package decorators wraps the messaging MessagePublisher and MessageHandler with cross-cutting concerns.
Package decorators wraps the messaging MessagePublisher and MessageHandler with cross-cutting concerns.
memory
Package memory provides an in-process messaging backend for no-infra builds and tests.
Package memory provides an in-process messaging backend for no-infra builds and tests.
redis
Package redis provides a Redis Pub/Sub messaging integration (publisher + subscriber) implementing the core MessagePublisher / MessageConsumer contracts over PUBLISH / SUBSCRIBE / PSUBSCRIBE.
Package redis provides a Redis Pub/Sub messaging integration (publisher + subscriber) implementing the core MessagePublisher / MessageConsumer contracts over PUBLISH / SUBSCRIBE / PSUBSCRIBE.
sqs
Package sqs provides an AWS-SDK-backed SQS messaging integration (publisher + subscriber) usable against real AWS SQS and against ElasticMQ for local dev.
Package sqs provides an AWS-SDK-backed SQS messaging integration (publisher + subscriber) usable against real AWS SQS and against ElasticMQ for local dev.
Package outbox builds the OutboxSink a transactional-outbox relay delivers through: the zero-infrastructure stub (the default), an SQS queue, or an S3 bucket.
Package outbox builds the OutboxSink a transactional-outbox relay delivers through: the zero-infrastructure stub (the default), an SQS queue, or an S3 bucket.
decorators
Package decorators wraps the outbox sinks' SDK seams in the client stack (Bulkhead → Retry → CircuitBreaker → Timeout → Tracing → Metrics → Logging) and codes every SDK error so the stack retries only transient failures.
Package decorators wraps the outbox sinks' SDK seams in the client stack (Bulkhead → Retry → CircuitBreaker → Timeout → Tracing → Metrics → Logging) and codes every SDK error so the stack retries only transient failures.
s3
Package s3 is the S3 OutboxSink: it writes each record as one object, keyed by a template, with a SHA-256 integrity checksum (Object Lock buckets require an integrity checksum and accept it in place of Content-MD5) and SSE-KMS when the record names a key.
Package s3 is the S3 OutboxSink: it writes each record as one object, keyed by a template, with a SHA-256 integrity checksum (Object Lock buckets require an integrity checksum and accept it in place of Content-MD5) and SSE-KMS when the record names a key.
sqs
Package sqs is the SQS OutboxSink: it routes each record to a queue, sends each queue's records with SendMessageBatch (at most 10 per request) and maps each entry's result back to its record.
Package sqs is the SQS OutboxSink: it routes each record to a queue, sends each queue's records with SendMessageBatch (at most 10 per request) and maps each entry's result back to its record.
stub
Package stub is the zero-infrastructure OutboxSink: it accepts every record and delivers nothing, so the graph boots with no queue or bucket.
Package stub is the zero-infrastructure OutboxSink: it accepts every record and delivers nothing, so the graph boots with no queue or bucket.
Package prometheus is the client for a Prometheus server's HTTP query API: instant queries reduced to one sample, and range queries reduced to one series.
Package prometheus is the client for a Prometheus server's HTTP query API: instant queries reduced to one sample, and range queries reduced to one series.
stub
Package stub is the zero-infrastructure metrics querier: every instant query is 0 and every range query an empty series, with no network I/O.
Package stub is the zero-infrastructure metrics querier: every instant query is 0 and every range query an empty series, with no network I/O.
Package replaybuffer selects and builds a ReplayBuffer backend from configuration and wraps it in the resilience + observability decorator stack, mirroring clients/lock.
Package replaybuffer selects and builds a ReplayBuffer backend from configuration and wraps it in the resilience + observability decorator stack, mirroring clients/lock.
decorators
Package decorators composes cross-cutting concerns — a per-op timeout and the observability trio (logging, metrics, tracing) — around any core/interfaces.ReplayBuffer, without touching the backend.
Package decorators composes cross-cutting concerns — a per-op timeout and the observability trio (logging, metrics, tracing) — around any core/interfaces.ReplayBuffer, without touching the backend.
memory
Package memory provides an in-process ReplayBuffer backend for single-pod deployments (dev / replica=1), where a reconnect lands on the same pod so cross-pod sharing is unnecessary.
Package memory provides an in-process ReplayBuffer backend for single-pod deployments (dev / replica=1), where a reconnect lands on the same pod so cross-pod sharing is unnecessary.
redis
Package redis provides a cross-pod ReplayBuffer backend over Redis, for multi-replica deployments (staging/prod) where a reconnect may land on a different pod than the one that buffered the tail.
Package redis provides a cross-pod ReplayBuffer backend over Redis, for multi-replica deployments (staging/prod) where a reconnect may land on a different pod than the one that buffered the tail.
rpc
Package rpc is the RPC client tier: it selects an RPC transport backend — gRPC today (grpc/) — by Kind and returns the RPCClient contract, so switching RPC frameworks is a config change, not a caller edit.
Package rpc is the RPC client tier: it selects an RPC transport backend — gRPC today (grpc/) — by Kind and returns the RPCClient contract, so switching RPC frameworks is a config change, not a caller edit.
grpc
Package grpc provides gRPC server and client factories.
Package grpc provides gRPC server and client factories.
grpc/interceptors
Package interceptors provides gRPC unary interceptors for cross-cutting concerns including observability, resilience, and request lifecycle management.
Package interceptors provides gRPC unary interceptors for cross-cutting concerns including observability, resilience, and request lifecycle management.
Package secrets is the credential-source client tier: it selects a secret backend — an environment variable (env/), a git-ignored local file (file/), or AWS Secrets Manager (awssm/) — by Kind and returns the interfaces.Source contract, so switching where a credential is read is a configuration change, not a caller edit.
Package secrets is the credential-source client tier: it selects a secret backend — an environment variable (env/), a git-ignored local file (file/), or AWS Secrets Manager (awssm/) — by Kind and returns the interfaces.Source contract, so switching where a credential is read is a configuration change, not a caller edit.
awssm
Package awssm implements the AWS Secrets Manager credential Source: it reads a credential from a Secrets Manager secret (a JSON object) named by a caller-supplied Ref→location mapping, extracting the configured JSON field.
Package awssm implements the AWS Secrets Manager credential Source: it reads a credential from a Secrets Manager secret (a JSON object) named by a caller-supplied Ref→location mapping, extracting the configured JSON field.
env
Package env implements the environment-variable credential Source: it resolves a Ref to a configured environment variable name and reads its value via os.Getenv.
Package env implements the environment-variable credential Source: it resolves a Ref to a configured environment variable name and reads its value via os.Getenv.
file
Package file implements the file-backed credential Source: it reads and writes credentials in a git-ignored local file (a dotenv-style KEY=value store) named by a caller-supplied Ref→location mapping.
Package file implements the file-backed credential Source: it reads and writes credentials in a git-ignored local file (a dotenv-style KEY=value store) named by a caller-supplied Ref→location mapping.
Package storage provides the StorageClient factory.
Package storage provides the StorageClient factory.
decorators
Package decorators wraps a base StorageClient with the shared client-boundary resilience stack (go/clients/decorators): Bulkhead → Retry → CircuitBreaker → Timeout → Tracing → Metrics → Logging.
Package decorators wraps a base StorageClient with the shared client-boundary resilience stack (go/clients/decorators): Bulkhead → Retry → CircuitBreaker → Timeout → Tracing → Metrics → Logging.
memory
Package memory provides an in-memory StorageClient backend for no-infra builds and tests.
Package memory provides an in-memory StorageClient backend for no-infra builds and tests.
s3
Package s3 implements the StorageClient against S3-compatible object stores (AWS S3 and MinIO), selected by configuration.
Package s3 implements the StorageClient against S3-compatible object stores (AWS S3 and MinIO), selected by configuration.
Package transport is the server-transport client tier: it selects an HTTP/RPC server backend — Connect over net/http today (connect/) — by Kind and returns the interfaces.ServerTransport contract, so switching server frameworks is a config change, not a caller edit.
Package transport is the server-transport client tier: it selects an HTTP/RPC server backend — Connect over net/http today (connect/) — by Kind and returns the interfaces.ServerTransport contract, so switching server frameworks is a config change, not a caller edit.
connect
Package connect provides a Connect/gRPC server factory that mounts proto-generated handlers on a standard net/http.ServeMux.
Package connect provides a Connect/gRPC server factory that mounts proto-generated handlers on a standard net/http.ServeMux.
connect/interceptors
Package interceptors provides Connect RPC interceptors for cross-cutting concerns.
Package interceptors provides Connect RPC interceptors for cross-cutting concerns.

Jump to

Keyboard shortcuts

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