According to the manifesto the main advantages are
Responsive: The system responds in a timely manner if at all possible.
Resilient: The system stays responsive in the face of failure.
Elastic: The system stays responsive under varying workload.
Message Driven: Reactive Systems rely on asynchronous message-passing to establish a boundary between components that ensures loose coupling, isolation and location transparency
One of the platforms that is betting on this type of architecture is Spring Framework. Bit by bit Spring is incorporating this architecture in all its projects, but sometimes it is not easy to implement because it is an incipient technology.
To make it easier to learn, I leave you a link to a personal project, where it is made entirely with reactive programming and that can be helpful to learn their techniques when approaching a project of this kind. The project is divided into the following sections:
- carisa-administration: API Rest project to hand Cassandra entities.
- configuration: Services configuration, Cassandra, web, etc. The system is ready to work with cassandra and in the future with another NOSQL database. For this, the services are independent of the data engine. HorizontalServiceConfiguration contains the independent services and CassandraServiceConfiguration contains Cassandra's specific services.
- controller: API Rest.
- convert: Engine data specific and web serializer converters.
- domain. The entities of domain.
- projection: Views of entities.
- repository: Data repositories.
- service: Services.
- carisa-core: A framework of support. In this framework there are different classes to handle aggregate in Nosql databases.
I hope it helps you...