mirror of
https://github.com/lux-apps/papers.git
synced 2026-10-30 18:15:21 +00:00
Restructured from flat .tex/.pdf files into per-paper subdirectories. Added Antje Worring as co-author on all papers. Synced PDFs to pdfs/ for download site.
30 lines
1.1 KiB
TeX
30 lines
1.1 KiB
TeX
\section{Practical Advice}
|
|
|
|
|
|
\subsection{Start at the Bottom}
|
|
|
|
If you do not have unit tests, do not attempt Jepsen testing. Fix the foundation first.
|
|
Most distributed systems bugs are found by good unit tests of the state machine logic,
|
|
not by elaborate fault injection.
|
|
|
|
\subsection{Deterministic Simulation Beats Live Testing}
|
|
|
|
When possible, use a deterministic simulation of the network (FoundationDB's approach)
|
|
rather than real network partitions. Deterministic simulation is faster, reproducible,
|
|
and catches the same classes of bugs. Reserve live fault injection for final validation.
|
|
|
|
\subsection{Invest in Observability}
|
|
|
|
When a fault injection test fails, you need to understand what happened. Structured
|
|
logging with causal tracing (each message carries a trace ID through the system) is
|
|
essential. Without it, debugging a partition-induced bug across 5 nodes is nearly
|
|
impossible.
|
|
|
|
\subsection{Test the Tests}
|
|
|
|
Introduce known bugs (mutation testing) and verify that your test suite catches them.
|
|
If a known safety violation does not trigger a test failure, your tests have a blind
|
|
spot.
|
|
|
|
%% ============================================================
|