(UNDER DEVELOPMENT!)
This project epitome of reactive microservice architecture. Protocols, transports, unit/e2e tests and implementations are all in the same place.
Functional reactive programming (FRP) is a programming paradigm for reactive programming (asynchronous dataflow programming) using the building blocks of functional programming (e.g. map, reduce, filter).
- Responsive: "The system is responsive whenever possible. Being responsive is the cornerstone of usability and practicality. More importantly, being responsive enables you to quickly detect and effectively handle problems."
- Resilient: "The system can remain responsive even when a failure occurs. This feature is not only necessary for highly available and mission-critical systems. Any system that lacks resilience will become unresponsive when a failure occurs. Resilience is implemented through replication, suppression, isolation, and delegation."
- Scalable (Elastic): "The system can remain responsive as its workloads constantly change. A Reactive system can react to rate changes in input workloads by increasing or reducing the resources allocated to serve these input workloads."
- Event-Driven (Message-Driven): "Reactive systems depend on asynchronous messaging, which ensures clear boundaries between loosely coupled, isolated, and transparently positioned components. The boundaries also provide a means to delegate a failure as a message."
- API Gateway: That can be used as a client to call another microservice.
- Service-X:
- Service-Y:
- Service-Z:
References:
-
FP definition: en.wikipedia.org/wiki/Functional_reactive_programming
-
FP Elements: alibabacloud.com/blog/reactive-programming-is-the-architecture-of-the-future_597251