BASE Transaction saga


  • Fully support cross-database transactions.
  • Re-try failed SQL and try to deliver it.
  • Support reverted SQL, update snapshot auto-generation and auto-compensation.
  • Use relational databases to take snapshot and persist transaction log; support SPI to load other persistent data.


  • Not support resource isolation for now.
  • Not support automatic recovery of commit and rollback after the service is down for now.


Our BASE transaction has implemented Saga transaction through third party SPI and uses Servicecomb-Saga as Saga engine.


  • Reverted SQL requires a primary key, please make sure it is defined in table structure.
  • For INSERT statements, primary key value needs to be shown in SQL, such as INSERT INTO ${table_name} (id, value, ...) VALUES (11111, '', ....) (id means table primary key).
  • ShardingSphere distributed primary key can be used to automatically generate the primary key.