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

foundation/

directory
v0.3.1 Latest Latest
Warning

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

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

Directories

Path Synopsis
Package cache provides caching utilities for the foundation layer.
Package cache provides caching utilities for the foundation layer.
decorators
Package decorators provides cache decorators for cross-cutting concerns.
Package decorators provides cache decorators for cross-cutting concerns.
Package config provides a factory for ConfigLoader implementations with multiple backends.
Package config provides a factory for ConfigLoader implementations with multiple backends.
schema/infra
Package infra provides typed configuration structures for Tech AI Knowledge Engine services.
Package infra provides typed configuration structures for Tech AI Knowledge Engine services.
schema/listquery
Package listquery is the config surface for the list-query value-suggestion facet: the row threshold above which a facet-eligible field is served from the maintained distinct_values table instead of a live DISTINCT, and the interval at which the reconcile job recomputes refcounts.
Package listquery is the config surface for the list-query value-suggestion facet: the row threshold above which a facet-eligible field is served from the maintained distinct_values table instead of a live DISTINCT, and the interval at which the reconcile job recomputes refcounts.
schema/pipelines
Package pipelines is the config surface for the pipeline (orchestration) layer: the per-pipeline operation timeout and the multipart-upload sizing.
Package pipelines is the config surface for the pipeline (orchestration) layer: the per-pipeline operation timeout and the multipart-upload sizing.
schema/repos
Package repos is the config surface for the repository (data-access) layer: the cache TTL/version/key-prefix and the per-operation timeout of the repository decorators.
Package repos is the config surface for the repository (data-access) layer: the cache TTL/version/key-prefix and the per-operation timeout of the repository decorators.
schema/resilience
Package resilience is the tunable config surface for the foundation resilience decorators (retry, breaker, rate-limit, bulkhead, timeout, budget) — the per-environment knobs threaded through the repo/client/interceptor providers Each struct mirrors its primitive's tunable fields with defaults identical to the primitive's DefaultConfig(), so adopting the config surface is behavior-preserving; the providers convert these into the primitive's options.
Package resilience is the tunable config surface for the foundation resilience decorators (retry, breaker, rate-limit, bulkhead, timeout, budget) — the per-environment knobs threaded through the repo/client/interceptor providers Each struct mirrors its primitive's tunable fields with defaults identical to the primitive's DefaultConfig(), so adopting the config surface is behavior-preserving; the providers convert these into the primitive's options.
schema/stores
Package stores is the config surface for the data (stores) layer: the page-size cap, the per-resource default page sizes and the list-query caches, so a deployer can tune pagination without a rebuild.
Package stores is the config surface for the data (stores) layer: the page-size cap, the per-resource default page sizes and the list-query caches, so a deployer can tune pagination without a rebuild.
schema/transport
Package transport is the config surface for the edge (transport) layer: WebSocket, gRPC, CORS and HTTP tuning plus the rate-limiter toggle.
Package transport is the config surface for the edge (transport) layer: WebSocket, gRPC, CORS and HTTP tuning plus the rate-limiter toggle.
schema/workers
Package workers is the shared config surface for background workers: the common tunables (name, telemetry, relay and sweep cadences, batching) plus the sweep-timing cross-field invariant, so every worker inherits the typed-field + Validate shape.
Package workers is the shared config surface for background workers: the common tunables (name, telemetry, relay and sweep cadences, batching) plus the sweep-timing cross-field invariant, so every worker inherits the typed-field + Validate shape.
schema/workflows
Package workflows is the config surface for the workflow (orchestration) layer: the per-workflow operation timeout applied through workflow.Builder.WithTimeout.
Package workflows is the config surface for the workflow (orchestration) layer: the per-workflow operation timeout applied through workflow.Builder.WithTimeout.
viper
Package viper provides a Viper-backed ConfigLoader implementation.
Package viper provides a Viper-backed ConfigLoader implementation.
Package crypto provides authenticated symmetric encryption for data at rest — e.g.
Package crypto provides authenticated symmetric encryption for data at rest — e.g.
Package decorate is the type-agnostic operation-decoration mechanism: a common OpMiddleware interface, a Chain composer, and a generic Exec[R] runner that wraps ANY named operation with the cross-cutting decorator stack, regardless of the operation's return type.
Package decorate is the type-agnostic operation-decoration mechanism: a common OpMiddleware interface, a Chain composer, and a generic Exec[R] runner that wraps ANY named operation with the cross-cutting decorator stack, regardless of the operation's return type.
Package decorator provides one generic implementation of the cross-cutting decorator stack (timeout, metrics, tracing, logging, recovery) shared by every tier whose unit of work has the shape Execute(ctx, In) (Out, error) — pipelines and workflows today.
Package decorator provides one generic implementation of the cross-cutting decorator stack (timeout, metrics, tracing, logging, recovery) shared by every tier whose unit of work has the shape Execute(ctx, In) (Out, error) — pipelines and workflows today.
Package dtovalidate is the leaf rule library the generated DTO Validate() methods compose Each rule is a small, hand-written check that REUSES the standard library (google/uuid, net/url, path/filepath, net/mail) rather than a hand-rolled regex, and returns a core/errors CodeInvalidInput AppError on violation so the failure classifies to 400 / InvalidArgument at the boundary.
Package dtovalidate is the leaf rule library the generated DTO Validate() methods compose Each rule is a small, hand-written check that REUSES the standard library (google/uuid, net/url, path/filepath, net/mail) rather than a hand-rolled regex, and returns a core/errors CodeInvalidInput AppError on violation so the failure classifies to 400 / InvalidArgument at the boundary.
Package fsys provides a real-OS filesystem implementation of the FS interface defined in core/interfaces.
Package fsys provides a real-OS filesystem implementation of the FS interface defined in core/interfaces.
Package git provides reusable git operations for the CLI and tooling layers.
Package git provides reusable git operations for the CLI and tooling layers.
Package lifecycle provides a Manager that starts a set of lifecycle-managed clients in registration order and stops them in reverse for graceful shutdown, so a composition root wires its clients once and coordinates their startup and teardown centrally instead of by hand.
Package lifecycle provides a Manager that starts a set of lifecycle-managed clients in registration order and stops them in reverse for graceful shutdown, so a composition root wires its clients once and coordinates their startup and teardown centrally instead of by hand.
Package listquery is the pure, ORM-free half of the list-query SDK a per-resource filter allow-list (Map) + sort allow-list (Set), a JSON filter-DSL parser that compiles a client filter string into the core/types Filter contract (gated by the allow-list so only allow-listed fields with type-checked values reach a query), and the shared Compile/CompileOrder fold that walks that IR through a core/interfaces.QueryBackend algebra.
Package listquery is the pure, ORM-free half of the list-query SDK a per-resource filter allow-list (Map) + sort allow-list (Set), a JSON filter-DSL parser that compiles a client filter string into the core/types Filter contract (gated by the allow-list so only allow-listed fields with type-checked values reach a query), and the shared Compile/CompileOrder fold that walks that IR through a core/interfaces.QueryBackend algebra.
Package logger provides structured logging with multiple backend implementations.
Package logger provides structured logging with multiple backend implementations.
logctx
Package logctx provides shared context utilities for logger sub-packages.
Package logctx provides shared context utilities for logger sub-packages.
stdlib
Package stdlib provides a pure stdlib slog logger implementation.
Package stdlib provides a pure stdlib slog logger implementation.
zap
Package zap provides a zap-backed logger implementation with PII redaction.
Package zap provides a zap-backed logger implementation with PII redaction.
Package metrics provides a builder for the Prometheus metrics implementation.
Package metrics provides a builder for the Prometheus metrics implementation.
noop
Package noop provides a no-op metrics implementation that silently discards all metric operations.
Package noop provides a no-op metrics implementation that silently discards all metric operations.
prom
Package prom provides a Prometheus-backed metrics implementation.
Package prom provides a Prometheus-backed metrics implementation.
Package middleware provides stdlib net/http middleware for composing request processing pipelines without external web frameworks.
Package middleware provides stdlib net/http middleware for composing request processing pipelines without external web frameworks.
Package options provides a generic functional options pattern for configuring types.
Package options provides a generic functional options pattern for configuring types.
Package resilience provides fault-tolerance primitives as standalone subpackages.
Package resilience provides fault-tolerance primitives as standalone subpackages.
adaptivethrottle
Package adaptivethrottle provides a client-side adaptive throttler (Google SRE "Handling Overload"): it sheds a growing fraction of outbound requests locally when a backend's accept-rate drops, protecting the backend from a client-side retry storm.
Package adaptivethrottle provides a client-side adaptive throttler (Google SRE "Handling Overload"): it sheds a growing fraction of outbound requests locally when a backend's accept-rate drops, protecting the backend from a client-side retry storm.
budget
Package budget tracks retry consumption across a call chain via context propagation.
Package budget tracks retry consumption across a call chain via context propagation.
bulkhead
Package bulkhead provides a builder for Bulkhead implementations with multiple backends.
Package bulkhead provides a builder for Bulkhead implementations with multiple backends.
bulkhead/adaptive
Package adaptive provides a self-tuning (AIMD) concurrency-limiting Bulkhead.
Package adaptive provides a self-tuning (AIMD) concurrency-limiting Bulkhead.
bulkhead/channel
Package channel provides a channel-based semaphore bulkhead implementation.
Package channel provides a channel-based semaphore bulkhead implementation.
circuitbreaker
Package circuitbreaker provides a builder for CircuitBreaker implementations with multiple backends.
Package circuitbreaker provides a builder for CircuitBreaker implementations with multiple backends.
circuitbreaker/gobreaker
Package gobreaker provides a circuit breaker backed by sony/gobreaker/v2.
Package gobreaker provides a circuit breaker backed by sony/gobreaker/v2.
deadletter
Package deadletter provides the dead-letter-queue facade — the Go mirror of techai_webutils.foundation.resilience.dlq.
Package deadletter provides the dead-letter-queue facade — the Go mirror of techai_webutils.foundation.resilience.dlq.
dedup
Package dedup provides message deduplication for exactly-once processing under at-least-once delivery.
Package dedup provides message deduplication for exactly-once processing under at-least-once delivery.
hedge
Package hedge provides a builder for Hedger implementations that reduce tail latency by racing a backup attempt.
Package hedge provides a builder for Hedger implementations that reduce tail latency by racing a backup attempt.
leader
Package leader provides leader election for single-instance job execution.
Package leader provides leader election for single-instance job execution.
ratelimiter
Package ratelimiter provides a builder for RateLimiter implementations with multiple backends.
Package ratelimiter provides a builder for RateLimiter implementations with multiple backends.
ratelimiter/token
Package token provides a token-bucket rate limiter backed by golang.org/x/time/rate.
Package token provides a token-bucket rate limiter backed by golang.org/x/time/rate.
reswire
Package reswire builds resilience primitives (retrier, circuit breaker) from a ConfigLoader + the schema/resilience config surface.
Package reswire builds resilience primitives (retrier, circuit breaker) from a ConfigLoader + the schema/resilience config surface.
retry
Package retry provides a builder for Retrier implementations with multiple backends.
Package retry provides a builder for Retrier implementations with multiple backends.
retry/exponential
Package exponential provides an exponential backoff retrier using cenkalti/backoff/v5.
Package exponential provides an exponential backoff retrier using cenkalti/backoff/v5.
Package system provides CommandRunner implementations for executing external commands.
Package system provides CommandRunner implementations for executing external commands.
Package tracer provides distributed tracing with swappable backends.
Package tracer provides distributed tracing with swappable backends.
nooptracer
Package nooptracer provides a no-op tracer that satisfies interfaces.Tracer.
Package nooptracer provides a no-op tracer that satisfies interfaces.Tracer.
oteltracer
Package oteltracer provides an OpenTelemetry-backed tracer implementation.
Package oteltracer provides an OpenTelemetry-backed tracer implementation.
Package validator provides a small, generic business-rule validator for the service layer — the below-transport-boundary complement to the proto/request validation performed at the transport edge (connect ValidateInterceptor).
Package validator provides a small, generic business-rule validator for the service layer — the below-transport-boundary complement to the proto/request validation performed at the transport edge (connect ValidateInterceptor).

Jump to

Keyboard shortcuts

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