Apache ServiceComb (incubating) 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.
Reference documentation is available on the ServiceComb website.
- saga-core(transaction and compensation handling logic)
- saga-format(data serialization and deserialization)
- saga-transports(communication protocol implementation such as rest or rpc in the future)
- saga-discovery(service discovery)
- saga-spring(restful service framework)
You will need:
- Oracle JDK 1.8+
- Maven 3.x
- Docker
- PostgreSQL
- Service Center(optional)
- Docker compose(optional)
- Docker machine(optional)
Download the source code.
git clone https://github.com/apache/incubator-servicecomb-saga.git
Enter the Saga root directory,build Saga project by maven command and generate a docker image named saga-spring in local.
mvn package -DskipTests -Pdocker
A docker-compose.yaml
file is provided to start Saga services and its dependencies(Service center and Mysql) as docker containers.
User also can configure specified Service center or Mysql in docker-compose.yaml
.
Enter the Saga root directory, run all service images using command,
docker-compose up
See Saga API for details.
See Saga demo for details.
Bugs: issues.
See Pull Request Guide for details.
See reporting bugs for details about reporting any issues.