Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mkabdelrahman/rideshare
A backend for an app like Uber built around event-driven modular monolith
https://github.com/mkabdelrahman/rideshare
Last synced: about 1 month ago
JSON representation
A backend for an app like Uber built around event-driven modular monolith
- Host: GitHub
- URL: https://github.com/mkabdelrahman/rideshare
- Owner: MKAbdElrahman
- Created: 2024-04-11T19:14:56.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2024-04-27T08:24:52.000Z (9 months ago)
- Last Synced: 2024-04-27T09:36:02.396Z (9 months ago)
- Language: Go
- Homepage:
- Size: 104 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## Rideshare
**A backend for an app like Uber.**
![architecture](./assets/architecture.png)
## Notes- now I want to only work on the happy path
- the following architecture is my working skeleton
- I will change the architrure as i learn more## Architecture Style: Modular Monolith
The architecture is designed around the idea of being a monolith but modular enough to enable easy migration to microserivces(if scale is needed).
## Architectureal Decesions
- All the services are hidden from each other by design, so no developer can import from any service he doesn't own
- service communcate by consumg and subscribing to events
- database per service is or database per domain if it reduces complexity more or help us being aynchronus
## Issues
- all the services are compleltey decpoupled
- someone has to start the services
- i can make each services runs on its own server
- howeever, this is unneeded coomplexity, i will add for each services a public handle endpoint. the api can run it, and ther service will strat running in its serpate gourutinne.
## Tech Stack
- Programming Language: Go
- Broker: Kafka
- Database: MySQL