This project was developed for experimentation in order to enhance system resilience against transient faults, using Saga pattern,RabbitMQ, Kubernetes, and Chaos Engineering.
- .Net 8 - Latest .Net version (Dec 2023).
- [Kubernetes] - Used for its self-healing and automatic scaling features.
- Chaos-Mesh - Used to run Chaos Engineering experiments in order to discover flaws against transient faults in complex systems.
- Open Telemetry - Used for recollecting traces of distributed transactions.
- Jaegger Tracing - Used for data visualization of traces of distributed transactions.
- RabbitMq - Used for decoupling development of microservices and automatic load balancing of application load.
- MongoDb - Used for datastore, in order to test data integrity in case of failure and rollback of saga
The following experiments where executed in order to discover flaws and increase system resilience
- Pod Failure
- Stress Failure
- Network Outage
With distributed transactions, each microservice can be bottle neck. Data visualization facilitates the identification of a bottle neck.
Results are in research paper in research folder.