Back to Quickwit

Architecture Decision Records (ADR) Index

docs/internals/adr/README.md

0.9.04.3 KB
Original Source

Architecture Decision Records (ADR) Index

This directory serves as the central knowledge base for Quickwit architecture.

Knowledge Map (Agent Context)

For AI agents and developers, here is how the system is organized by domain:

Core Architecture

ADRs will be created here as we implement new systems. Start with the metrics pipeline and work outward.

Signal Priority

Metrics first, then traces, then logs. Architectural decisions must generalize across all three signals.


Master Index

ADRTitleStatusTagsKey Components
000Template-meta-
001Parquet Metrics Data ModelProposedstorage, metrics, parquet, data-modelquickwit-parquet-engine
002Configurable Sort Schema for Parquet SplitsProposedstorage, metrics, compaction, parquet, sortingquickwit-parquet-engine, quickwit-indexing
003Time-Windowed Sorted Compaction for ParquetProposedstorage, metrics, compaction, parquet, time-windowingquickwit-parquet-engine, quickwit-indexing, quickwit-metastore

Supplements & Roadmaps

Detailed implementation plans and reports linked to ADRs.

Parent ADRSupplementDescription
000Supplement TemplateTemplate for new supplements

Architecture Evolution

Quickwit tracks architectural change through three lenses. See EVOLUTION.md for the full process.

                    Architecture Evolution
                            │
       ┌────────────────────┼────────────────────┐
       ▼                    ▼                    ▼
 Characteristics          Gaps              Deviations
  (Proactive)          (Reactive)          (Pragmatic)

Characteristics (What we need)

Product requirements and capabilities we must have.

Gaps (What we learned)

GapTitleStatusSeverity
001No Parquet Split CompactionOpenHigh
002Fixed Hardcoded Sort SchemaOpenMedium
003No Time-Window Partitioning at IngestionOpenHigh
004Incomplete Split Metadata for CompactionOpenHigh
005No Per-Point DeduplicationOpenMedium
006No Independent Auto-ScalingOpenHigh
007No Parquet Metadata CachingOpenHigh
008No High Query Rate OptimizationOpenHigh
009No Leading Edge PrioritizationOpenHigh
010No Multi-Level Data Caching or Query Affinity OptimizationOpenHigh

Create a gap when you discover a design limitation from production, incidents, or research. See gaps/README.md.

Deviations (What we accepted)

DeviationTitleRelated ADRPriority

No deviations recorded yet.

Create a deviation when implementation intentionally differs from ADR intent. See deviations/README.md.

Decision Logs (How to use)

We do not have a separate "Decision Log" file. Decision Logs are embedded in each ADR.

When you need to understand why a decision was made:

  1. Find the relevant ADR in the Knowledge Map above.
  2. Scroll to the Decision Log section at the bottom of that ADR.
  3. If making a NEW decision, update that table.

Status Definitions

  • Proposed: Under discussion, awaiting prototype or review.
  • Accepted: Approved plan of record. Implementation should follow this.
  • Deprecated: Replaced or abandoned. Kept for history.
  • Superseded: Replaced by a newer ADR (see link).