Over a million developers have joined DZone.

An Open Java Transaction Book

· Java Zone

Microservices! They are everywhere, or at least, the term is. When should you use a microservice architecture? What factors should be considered when making that decision? Do the benefits outweigh the costs? Why is everyone so excited about them, anyway?  Brought to you in partnership with IBM.

We live in a world of both commercial and open-source software, each one having strengths and weaknesses. But when it comes to books, there hasn’t been any noticeable revolution towards embracing new writing methodologies. The current book market shares the same philosophy with commercial software business model. There is a fee for obtaining a book copy, evolution is rather slow and usually there is a single person carrying all the weight of writing. It’s worth noticing that this model offers only the author’s point of view on a particular subject.

Yet, there is nothing wrong with the classic book writing process, but that doesn’t mean it has to be the only way of conceiving a book.

Why not embracing the open-source philosophy for writing books too? There are advantages for such an endeavor:

  • the writing effort could be split among multiple domain connoisseurs
  • there is no dead-line pressure, meaning you can write as much as your spare time allows you to
  • we can constantly improve the book, in a similar way with software releases: 1.0.0, 1.1.0, 2.0.0
  • the book is available from day one, and it can constantly be reviewed and enhanced using the Agile methodologies

I am taking this idea very seriously and therefore I decided to write my first open book, entitled “Unfolding Java Transactions”. I will use GitHub to manage the writing version management.

The motivation for writing such book comes from my previous interactions with enterprise software development. In any such project, the transaction management was never viewed as a priority upon designing the system and that’s always been puzzling me. Data integrity is extremely important, and it should be treated with the same attention like data modelling, testing or automatic deployment. Transaction management is not an easy subject and it makes sense to congregate all the Java Transaction knowledge in a single free book. I welcome any person willing to contribute to this project, since “two heads are better than one”.

This is what I will write about:

  • The chemistry of ACID
  • Concurrency control
    • 2PL
    • MVCC
  • Logical vs Physical Transactions
  • Why do ORM always need Transactions?
  • Local Transactions
    • JDBC
    • JMS
    • Spring local transactions
    • Hibernate local transactions
  • Global Transactions
    • X/Open XA Protocol
    • 2PC and 1PC
    • JTA
    • Spring JTA transactions
    • Hibernate JTA support
    • File transactions with XADisk
    • Bitronix
  • Batch processing transaction management
    • Spanning an XA Transaction over JMS, DB and the File System
  • Transactional Memory
    • Multiverse STM

If you are interested in any of those subjects you can follow my progress on my blog, on twitter or on the book GitHub repository.

Discover how the Watson team is further developing SDKs in Java, Node.js, Python, iOS, and Android to access these services and make programming easy. Brought to you in partnership with IBM.


Published at DZone with permission of Vlad Mihalcea, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

The best of DZone straight to your inbox.

Please provide a valid email address.

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}