Skip to content

seanyinx/ServiceComb-Saga

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Saga Build Status Coverage Status License

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.

Documentation

Reference documentation is available on the ServiceComb website.

Major Architecture of Saga

  • 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)

Saga

Prerequisites

You will need:

  1. Oracle JDK 1.8+
  2. Maven 3.x
  3. Docker
  4. PostgreSQL
  5. Service Center(optional)
  6. Docker compose(optional)
  7. Docker machine(optional)

Building

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

Run Services

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

Reference API

See Saga API for details.

Example

See Saga demo for details.

Contact

Bugs: issues.

Mailing lists: subscribe dev

Contributing

See Pull Request Guide for details.

Reporting Issues

See reporting bugs for details about reporting any issues.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 88.3%
  • JavaScript 8.8%
  • HTML 2.2%
  • Other 0.7%