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

spectre

module
v0.4.2 Latest Latest
Warning

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

Go to latest
Published: Sep 24, 2026 License: Apache-2.0

README

SPECTRE

SPECTRE (Service Pair Execution Comparator for Traffic Response Equivalence) is a system for validating service migrations against real traffic. It runs a reference implementation and a candidate implementation in parallel, then compares their externally observable behaviour.

The reference implementation remains authoritative for client responses and side effects. The candidate runs in a network sandbox: SPECTRE intercepts its outbound requests, compares them with the reference implementation's requests, and replays the reference results without allowing the candidate to make real writes.

Semantic differences are captured for analysis and can be fed back into an LLM-assisted migration workflow. A candidate is quarantined when its behaviour diverges from the reference implementation.

SPECTRE is primarily intended for language and framework migrations, but the same approach can help validate dependency upgrades, service consolidation, and other behaviour-sensitive changes.

See the design document for the proposed architecture and safety model.

Directories

Path Synopsis
cmd
spectre-ingress command
spectre-sample command
ingress
Package ingress mirrors inbound HTTP requests to reference and candidate services.
Package ingress mirrors inbound HTTP requests to reference and candidate services.
logger
Package logger configures structured logging and carries loggers through contexts.
Package logger configures structured logging and carries loggers through contexts.
middleware/health
Package health provides HTTP liveness and readiness middleware.
Package health provides HTTP liveness and readiness middleware.
middleware/logging
Package logging provides structured HTTP request logging middleware.
Package logging provides structured HTTP request logging middleware.
sample
Package sample provides a deterministic gRPC service for ingress experiments.
Package sample provides a deterministic gRPC service for ingress experiments.
schema
Package schema loads the protobuf descriptors used by ingress comparisons.
Package schema loads the protobuf descriptors used by ingress comparisons.

Jump to

Keyboard shortcuts

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