Skip to content
This repository has been archived by the owner on Mar 21, 2020. It is now read-only.
/ light-saga-4j Public archive

A saga implementation to manage distributed transaction across multiple microservices

License

Notifications You must be signed in to change notification settings

networknt/light-saga-4j

Folders and files

NameName
Last commit message
Last commit date

Latest commit

7121079 · Feb 29, 2020
Jan 4, 2018
Jul 5, 2018
Feb 29, 2020
Feb 29, 2020
Feb 29, 2020
Nov 7, 2017
Feb 29, 2020
Oct 15, 2017
Mar 8, 2019
Nov 24, 2017
Feb 29, 2020

Repository files navigation

light-saga-4j

A saga implementation to manage distributed transaction across multiple microservices

Stack Overflow | Google Group | Gitter Chat | Subreddit | Youtube Channel | Documentation | Contribution Guide |

Introduction

One big challenge with using the microservice architecture is that developers must deal with the additional complexity of creating a distributed system. Developers must use an inter-process communication mechanism. Implementing use cases that span multiple services requires the use of unfamiliar techniques.

Saga is a type of Compensating Transaction pattern, which provides a simple way to help users solve the data consistency problems encountered in micro-service applications.

Prerequisites

You will need:

  1. [JDK 1.8+][jdk]
  2. [Maven 3.x][maven]
  3. [Kafka 0.11+][kafka]
  4. [Docker][docker]
  5. [MySQL][mysql]
  6. [Docker compose(optional)][docker_compose]

Project module:

--saga-core: Base components and interface to saga framework; Define saga basic command, event and message;

--saga-framework: Saga framework implementation. Define saga participant, orchestration, and message repository;

--saga-dsl: Base saga definition which includes saga steps definition, saga execution state, etc...

--order-service: End-to-end integration test module for saga framework.

--saga-cdc-mysql-connector: Base components for mysql to kafka binlog data transfer.

--saga-cdc-service-mysql: cdc (capture data change) service for mysql to kafka