The approved scope, direction, and design of ChaosLab — a declarative recovery-correctness analysis platform for distributed microservices.
Modern distributed applications are built to survive failure: pods restart, requests retry, circuit breakers trip and reset. Chaos-engineering tools like Chaos Mesh are excellent at injecting that failure and confirming a system becomes live again — services respond, health checks pass, pods run.
What they do not check is whether the system's business state is still correct after that recovery. A payment can be double-charged. An order can be confirmed without inventory ever being deducted. Two services can each report success while disagreeing about what actually happened. None of this shows up in a liveness probe.
ChaosLab's problem, precisely stated: given a distributed application, a controlled failure, and its subsequent recovery, was the resulting business state correct — and can that be proven with evidence, not assumed from green health checks?
Teams that already run chaos experiments and need to know if recovery preserved correct business state, not just uptime.
Engineers who own services with cross-service invariants (payments, inventory, order state) and want regression coverage for recovery paths.
Teams validating a release candidate under failure conditions before it reaches production.
| Function | Description |
|---|---|
| Define Oracle | Author a declarative recovery-correctness oracle describing expected business invariants. |
| Run Experiment | Trigger a controlled fault (via Chaos Mesh) against the target application through the Experiment Manager. |
| Collect Evidence | Gather logs, database snapshots, and OpenTelemetry traces during and after recovery. |
| Correlate Evidence | Merge evidence into a single cross-service timeline of what actually happened. |
| Evaluate Oracle | Check the correlated evidence against the declarative oracle. |
| Generate Verdict | Produce a PASS/FAIL recovery-correctness report backed by the supporting evidence. |
| Publish Artifacts | (Website) Publish presentations and project documentation with version history. |
| System | Interface |
|---|---|
| Chaos Mesh | Kubernetes CRDs / API to schedule and trigger fault experiments. |
| Online Boutique | Target distributed application under test (microservices demo app). |
| Database | Direct queries to verify persisted business state after recovery. |
| Logs | Structured application/service logs collected post-experiment. |
| OpenTelemetry | Distributed traces used to reconstruct cross-service request flow. |
Important framing: fault injection (via Chaos Mesh) is supporting infrastructure — it produces the failure scenario. ChaosLab's actual contribution, per our professor's guidance, is verifying recovery correctness after that failure: the oracle definition, evidence correlation, and verdict generation. ChaosLab should not be described as merely a fault-injection platform.