The current repo has been split into the following projects:
- https://github.com/agritsik/distributed-system-rest
- https://github.com/agritsik/distributed-system-rabbitmq
How to Build Resilient Distributed Systems
In order to demonstrate:
- How to work with legacy systems
- How to process a huge amount of events
Technical goals:
- implement microservices
- implement patterns for resilient distributed systems
- implement synchronous communication using REST (request/response)
- implement asynchronous communication using AMQP (pub/sub)
- implement event sourcing using different data storages (SQL and NoSQL) and compare their performance
The following techologies will be used:
- Java and Spring Boot are used for implementing microservices
- RabbitMQ is used as a communication layer
- Spring Cloud Netflix is used for implementing Api Gateway, Service Discovery, Circuit Breaker etc
- Docker is used for containerization
- MySQL, MongoDB, Redis, Solr, Cassandra, ElasticSearch etc are used as a persistence level
TBD