Design Decisions
This directory contains architectural decisions and design rationales for DR_EVT.
Documents
Simulation vs Replay Modes - Why we have two distinct operating modes and how they differ
Timezone Support - How timezone handling works for ISO timestamp traces
Trace as a streaming-ready state container -
Traceowning all session state (job records + resource-history) as bounded circular buffers; genuine streaming insertion (append_job()/append_jobs(), exposed over gRPC), progressive/multi-file loading (--infile_list), and a memory-pressure check (--check_memory_pressure FRACTION) built on top of it
Purpose
These documents record the “why” behind non-obvious design choices. They help:
New contributors understand context
Future maintainers avoid re-litigating settled questions
Reviewers see what alternatives were considered
Adding New Decisions
When making a significant design choice, consider documenting:
The problem - What constraint or requirement drove this?
Alternatives considered - What else did we try or think about?
Trade-offs - What did we gain? What did we lose?
Decision - What did we choose and why?
Consequences - What does this decision mean for future work?