An open Java Transaction book

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 embrace the open-source philosophy for writing books too? There are advantages to 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 modeling, 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.

Subscribe to our Newsletter

* indicates required

Email Address *

10 000readers have found this blog worth following!

If you subscribeto my newsletter, you'll get:

A free sampleof my Video Course about running Integration tests at warp-speed using Docker and tmpfs