Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/albertllousas/gym-class-booking-microservice


https://github.com/albertllousas/gym-class-booking-microservice

ddd debezium event-driven-architecture functional-programming helidon-se hexagonal-architecture kafka kotlin microservice optimistic-locking solid-principles transactional-outbox

Last synced: about 1 month ago
JSON representation

Awesome Lists containing this project

README

        

# Gym Class Booking microservice

Keywords: `Hexagonal-Architecture`, `microservice`, `kotlin`, `Helidon-SE`, `Debezium`, `SOLID`, `Domain-Driven Design`, `functional-programming`,
`Event-Driven Architecture`, `Domain-Events`, `Kafka`, `PostgreSQL`, `Transactional-outbox`, `optimistic-locking`

## Functional requirements

- The system must allow the booking of an existing gym class.
- The system must allow to subscribe to waitlist for a fully booked gym class.
- The system must allow to cancel a booking.
- The system must automatically book the first person in the waitlist when a booking is canceled.

# Pending

- Gym class lyfecycle (CRUD ops): create, update, delete.

## Debezium conf:

It is used only in the test env, for a prod usage it should be configured:

[Debezium test container](/src/test/kotlin/gymclass/fixtures/containers/Debezium.kt)