atomikos / transactions-essentials

Development repository for next major release of
https://www.atomikos.com/Main/TransactionsEssentials
Other
464 stars 139 forks source link

Atomikos TransactionsEssentials: light-weight distributed transactions

Atomikos Logo

Community development "mirror" of atomikos.com/Main/TransactionsEssentials.

New contributors welcome - help us shape transactions for the cloud!

Please star this project to help us grow. Thanks in advance!

Highlights

NEW: JakartaEE support

Relevant jars are transformed into jakarta equivalents so we support both Javax and Jakarta.

NEW: Microservice Support

With microservices, the typical monolith ACID transaction becomes split into 2 or more local transactions, one in each microservice. This can quickly lead to inconsistencies - for instance if there are network timeouts or other failures:

Inconsistent Microservices

Some concrete examples of possible inconsistencies:

We allow 1 global transaction, even across separate microservices and you don't have to code anything for that. In the example shown, a failed call means rollback at microservice 2, and if you want then you can safely try an alternative microservice instead (even within the same global transaction).

Working samples are included in our official download. This enables safer retries (if you do want to retry - that is your choice) plus the notion of a global commit.

For more information on how to fine-tune microservice transactions: check out our online course.

Using TransactionsEssentials

Getting Started

See Getting Started for general documentation.

Documentation

See documentation at www.atomikos.com/Documentation

Code Samples

Register and download from www.atomikos.com

Releases

Register and download from www.atomikos.com and get documentation plus working sample applications

Or check Maven Central (without the samples or documentation)

Governance & Participating

Joining

See our Community Page for how to join us.

Building From Source

Pull latest from repo git pull origin master and try mvn clean install -Popensource.

Contributing

The fastest way to contribute is by starring this project. Thank you :-)

See our contributor guidelines for inspiration and guidance.

Code of conduct

See our code of conduct for details and how to report violations.

About This Repository

This GitHub project is merged with - and updated regularly from - our internal development repository to work towards our next open source release (note: stable maintenance releases and our commercial power features are managed outside GitHub).

IMPORTANT: we (Atomikos) don't develop on GitHub ourselves (yet) so you won't see a lot of our commits here - only refreshes when we merge + push to GitHub. That is because at least initially, the sole purpose of this project is to allow interested GitHub community members to fork and contribute useful features to what we have.

Activities here are probably higher when:

After that, we are busy upgrading our customers and on-boarding new customers so you will see less activity here. That's because most customer work is done in our private repositories.

Special Thanks / Featured Contributors

You know how it goes, one always forgets to mention someone - but the following fine people have all delivered memorable technical contributions to this project in one way or another.

So: thank you! (and apologies to the superstars not mentioned here):

License

See our license policy page.

Feedback Wanted!

Do you think something's missing on this page? Please open an issue to let us know!

Copyright (c) 2000-2023, Atomikos - all rights reserved. Visit www.atomikos.com for more...