This project are simple implementations of the eight transaction saga pattern described in Software Architecture: The Hard Parts. I’ve done this to help me better understand the trade-offs of each type. You’ll find a branch for each implementation, where the branch name mirrors the pattern name, e.g. phone-tag
.
Pattern Name | Communication | Consistency | Coordination |
---|---|---|---|
Branch Name |
Epic Saga |
Synchronous |
Atomic |
Orchestrated |
epic-saga |
Phone Tag Saga |
Synchronous |
Atomic |
Choreographed |
phone-tag-saga |
Fairy Tale Saga |
Synchronous |
Eventual |
Orchestrated |
fairy-tale-saga |
Time Travel Saga |
Synchronous |
Eventual |
Choreographed |
time-travel-saga |
Fantasy Fiction Saga |
Asynchronous |
Atomic |
Orchestrated |
fantasy-fiction-saga |
Horror Story Saga |
Asynchronous |
Atomic |
Choreographed |
horror-story-saga |
Parallel Saga |
Asynchronous |
Eventual |
Orchestrated |
parallel-saga |
Anthology Saga |
Asynchronous |
Eventual |
Choreographed |
Architectural Style | Architectural Family |
---|---|
Layered |
Monolithic |
Pipeline |
Monolithic |
Microkernel |
Monolithic |
Service-base |
Distributed |
Event-driven |
Distributed |
Space-based |
Distributed |
Service-oriented |
Distributed |
Microservices |
Distributed |
-
./mvnw -DskipTests --batch-mode --update-snapshots --errors clean package spring-boot:build-image
-
./mvnw -DskipTests --batch-mode --update-snapshots --errors clean install
-
./mvnw -pl gurps-online spring-boot:run
-
This project is licensed under the Apache License Version 2.0, January 2004.
-
The guidebook structure was created by Simon Brown as part of his work on the C4 Architectural Model. His books can be purchased from LeanPub.
-
Learn how to build Cloud Native applications using Spring Boot and Kubernetes
-
ZeroMQ and RabbitMQ Messaging for agility and scalability Allen Holub HD