Architecture decisions¶
arc42 §5 — the accepted decisions behind the logging stack
(Shared logging base library (FEAT_0070)). Each arch-decision :refines: the parent
requirement it serves.
Decision. The workspace logging facade is the Forces. taktora must speak DLT to vehicle integrators and
plain log macros to non-vehicle integrators. Consequences. All business crates use Alternatives rejected. (a) |
Decision. The DLT backend encodes via Forces. Vehicle integrators want bit-compatible DLT. Other
integrators want a clean Rust crate that cross-compiles without
Consequences. Every consumer compiles taktora’s DLT backend
without installing Alternatives rejected. (a) FFI to |
Decision. Split the workspace surface into two crates —
Forces. A consumer that wants only DLT (e.g. an integrator
wiring DLT into their own non- Consequences. Two Alternatives rejected. (a) One crate with a |
Decision. Existing Forces. Consequences. Only one output pipeline, regardless of
whether the emitter chose Alternatives rejected. (a) Rewrite |
Decision. When Forces. First-time local Consequences. Unit tests and local development “just work”.
The fallback is replaced by any of the other init paths —
explicit daemon config, pre-installed Alternatives rejected. (a) No fallback (silent drops) — a debugging trap; rejected. (b) Panic on no-config — surprises first-time users; rejected. (c) Write to a file — requires choosing a path; rejected as more configuration than a fallback should require. |