Skip to content

Latest commit

 

History

History
31 lines (19 loc) · 1.87 KB

Readme.md

File metadata and controls

31 lines (19 loc) · 1.87 KB

Reactive MicroServices (w/ Functional Programming)

(UNDER DEVELOPMENT!)

This project epitome of reactive microservice architecture. Protocols, transports, unit/e2e tests and implementations are all in the same place.

Key elements of FRP (Functional Reactive Programming)

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."

Services in the MonoRepo

  • 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