Skip to content

vladislavlad/awesome-task-exchange-system

Repository files navigation

Awesome Task Exchange System (UberPopug Inc)

This project is being implemented as part of the course "Asynchronous architecture".

Project Architecture

Domain model and Event Storming result at Miro Dashboard

This repo includes

Microservices:

Task service

Accounting service

Analytics service

Env Docker Compose:

Auth service

Kafka

  • version 3.5 KRaft (without Zookeeper)

PostgreSQL

ScyllaDB

Redis

UI

  • TODO

Stack

  • Kotlin 1.9
  • Spring Boot 3.3.x (WebFlux, R2DBC, Cloud Stream)
  • Kafka
  • PostgreSQL 16
  • ScyllaDB 5
  • Redis 7

Stack is fully reactive

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.

About

Awesome Task Exchange System (UberPopug Inc).

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published