Skip to content

fl3xman/acme-financial-saga-services

Repository files navigation

ACME FINANCIAL SAGA SERVICES

Sample project to demonstrate usage of orchestrated (via Kafka) microservice SAGA + Outbox(Polling) patterns. Project based on Spring Boot Webflux framework using non-blocking code until SQL data storage (JPA part is blocking). Supported currencies EUR, USD.

Implementation with support of schema-registry can be found here.

Composition
  • Spring Cloud - API Gateway with filters (rate-limit, circuit-breaker)

  • Spring Boot - Webflux microservices (using Non-blocking Kafka prod/cons)

  • Kafka

  • PostgreSQL / H2 (Blocking drivers)

diagram

Requirements & Supported Platforms

Requirements
  • Java 11 (OpenJDK 11+)

  • Gradle 6.3 (Kotlin 1.3+)

  • Intellij CE 2019.1+ (IDE)

  • Docker (Docker compose)

Supported Platforms
  • Docker

  • IDE (locally)

Installation & Run

Run using docker
docker-compose up -d --build
Run using IDE
# Set main classes for each microservice (agw, account, payment)
# Set -Dspring.profiles.active=psql or -Dspring.profiles.active=h2 as VM option (account, payment)

# Run docker compose for Kafka
docker-compose -f docker-compose-ide.yml up -d

Then hit http://localhost:3000/docs for more info.

Use one of supported accounts:

Table 1. Accounts (Basic auth)
Username / IBAN Password

AT483200000000000001

password

AT483200000000000002

password

About

Financial SAGA sample project.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published