https://github.com/josephgoksu/reactive-microservices
This project epitome of reactive microservice architecture. Protocols, transports, unit/e2e tests and implementations are all in the same place.
https://github.com/josephgoksu/reactive-microservices
functional-programming functional-reactive-programming microservice microservices microservices-architecture nestjs rxjs
Last synced: 9 months ago
JSON representation
This project epitome of reactive microservice architecture. Protocols, transports, unit/e2e tests and implementations are all in the same place.
- Host: GitHub
- URL: https://github.com/josephgoksu/reactive-microservices
- Owner: josephgoksu
- Created: 2022-02-15T20:59:38.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2022-08-11T22:43:56.000Z (over 3 years ago)
- Last Synced: 2025-01-14T01:34:22.484Z (10 months ago)
- Topics: functional-programming, functional-reactive-programming, microservice, microservices, microservices-architecture, nestjs, rxjs
- Language: TypeScript
- Homepage:
- Size: 356 KB
- Stars: 2
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: Readme.md
- Funding: .github/FUNDING.yml
Awesome Lists containing this project
README
# 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