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 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.

Enter your email address to follow this blog and receive notifications of new posts by email.

Advertisements

2 thoughts on “An open Java Transaction book

  1. Nice idea, but have you considered using a non-binary format to such as Markdown or Asciidoc to author the book so that users can see meaningful diffs on github? It would also enable more collaboration as users could then send pull requests via github…

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s