Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/tychota/shitake
A demo of microservice CQRS-ES infrastructure using Nest, Postgres
https://github.com/tychota/shitake
Last synced: 2 days ago
JSON representation
A demo of microservice CQRS-ES infrastructure using Nest, Postgres
- Host: GitHub
- URL: https://github.com/tychota/shitake
- Owner: tychota
- License: mit
- Created: 2019-04-04T07:27:35.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2023-01-12T01:41:59.000Z (almost 2 years ago)
- Last Synced: 2023-03-02T14:32:16.548Z (over 1 year ago)
- Language: TypeScript
- Homepage:
- Size: 2.54 MB
- Stars: 26
- Watchers: 1
- Forks: 5
- Open Issues: 23
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# Shitkake
## 🎉Context
I work as an architect at [BAM](https://www.bam.tech/).
I'm currently staffed as the architect for the frontend part on a dating app that use a lot of CQRS / hexagonal architecture for the backend.
Last week, I had to estimate and sale a project that would need such an architecture.
I realised that while I would do personally it either akka stream or elixir with commanded, no one in my company would be able to work on it (we are specialists of JS, and we do a bit of php/python).
Thus I create this test project to battle test [Nest](https://docs.nestjs.com/) and standardise some good practices.
**This repo is a demo.**
It is **not used in production**, it will be updated a bit, documented a bit but won't be use in reality.**What will be used will be closed source** but may serve to update this repo.
## 🏆Goals
- ✅testability
- 🔒security
- 📖readability
- 🖼separation of concern
- 🏆standardisation
- 📈performance / scalability## ⚠️When not use this
Everytime, except if:
- you need CQRS-ES
- you need microservice
- you need to do it in node
- you love typescript
- you are ok to read a repo with little to no doc (so far)## 🛣Roadmap / starmap
### Planned for really near future
- [ ] 12 factor config
- [ ] AuthGuard with JWT
- [ ] Unit Test### Probably just after
- [ ] E2E Test
- [ ] Better linter
- [ ] Task inter microservice: so far with Celery (python) and RabbitMQ
- [ ] Document:
- Why CQRS? Short term Pro? Short term Cons? Maintainability ? Links to learn more.
- Why Onion architecture? Short term Pro? Short term Cons? Maintainability ? Links to learn more.
- Why GRQC? Short term Pro? Short term Cons? Maintainability ? Links to learn more.
- Why Celery/RabbitMQ? Short term Pro? Short term Cons? Maintainability ? Links to learn more.
- How to create new µService/Query/Command ? Step by step.### Possibly in the future
- [ ] Deploying on kubernetes with helm
- [ ] CI with docker
- [ ] CD (green/blue deployment, [Terminus](https://docs.nestjs.com/recipes/terminus))
- [ ] Improve dev server to auto restart
- [ ] Invest [citus](https://www.citusdata.com/) for eventStore scalling and/or snapshot from https://dev.to/kspeakman/event-storage-in-postgres-4dk2
- [ ] analytics with InfluxDB/Graphana### Unlikely but maybe
- [ ] tracing
- [ ] service mesh### I would dream of it but lets be realistic
- [ ] a celery like framework base on RabbitMQ
## 📜 Licence
MIT
If you like it, let's have a beer when you are in Paris.