This project is being implemented as part of the course "Asynchronous architecture".
Domain model and Event Storming result at Miro Dashboard
- Auth: Bearer JWT
- Swagger UI
- Auth: Bearer JWT
- Swagger UI
- Auth: Bearer JWT
- Swagger UI
- Authn method: Username + Password
- Auth type: Bearer JWT
- Dockerhub image: vladislavlad/accounts
- Swagger UI
- version 3.5 KRaft (without Zookeeper)
- TODO
- Kotlin 1.9
- Spring Boot 3.3.x (WebFlux, R2DBC, Cloud Stream)
- Kafka
- PostgreSQL 16
- ScyllaDB 5
- Redis 7
Spring WebFlux is base for reactive Spring RestAPI apps. WebFlux core is project Reactor and async non-blocking netty server.
Spring Data R2DBC is reactive connection to relational databases. In this project I use PostgreSQL DB and R2DBC driver.
Next part is Spring Cloud Stream with Kafka Binder. Spring Cloud Stream allows to define reactive functions connected with Kafka consumers and producers.
Spring Reactive Cassandra is using for interaction with ScyllaDB.
And, finally, Kotlin coroutines allows us to perfectly connect everything together.