Skip to content

Architecture Decisions Record (ADR Log) ​

This log documents every major technical decision made across 14-Tracing-Backend.

Decision IDAreaChosen OptionAlternatives ConsideredDeciding FactorsTrade-Off AcceptedRevisit Trigger
ADR-001Backend RuntimeFastAPI (Python 3.13)Go, Rust, Node.jsDirect integration with ML libraries (NumPy, PyTorch, LLM APIs) alongside async I/O.Higher memory footprint per worker than Go/Rust.If single-node ingestion exceeds 50,000 spans/s.
ADR-002Telemetry StorageClickHouse MergeTreePostgreSQL, Elasticsearch, Cassandra6x-10x compression on append-only time series; sub-second aggregations.Eventual consistency during background part merges.If complex full-text phrase searches dominate query volume.
ADR-003Sampling StrategyTail-Based Sliding Window1% Head Sampling, Uniform SamplingRetains 100% of error traces and p99 latency spikes; eliminates blind drops.In-memory buffer requirement for in-flight 30s traces.If active concurrent trace memory exceeds 16GB.
ADR-004AI IntegrationPre-trained LLM APICustom Trained Fine-tuned TransformerInstant zero-shot reasoning; zero GPU hardware maintenance; immediate incident postmortems.Dependency on external API availability and network latency.If prompt API cost exceeds $5,000/month at high incident volume.
ADR-005UI ArchitectureReact 18 + ViteNext.js SSR, Vue 3Concurrent rendering for virtualized SVG Gantt charts with 2,000+ span elements.Client-side bundle size; initial CSR load.If public SEO indexing of trace permalinks is required.