JBoss Transactions Documentation Library: Architecture Documents

This page contains references to various architecture papers and documents related to the JBoss Transaction Service. Since the product has been around for many years, some of these documents may be out-of-date; where necessary, we will update them, so watch this space! Some general notes first:

  • ArjunaCore is the transaction system at the heart of all of our transaction products. It is flexible, supporting ACID transactions as well as extended transactions. It's also distribution agnostic and can be used entirely by itself, without recourse to any other external entity or software.
  • The original transaction system was called Arjuna. It is now the JBoss Transaction Service.


An overview of the architecture of JBoss Transactions.

As can be seen below, JBoss Transactions is made up of a number of different modules.

  • ORB Portability: in order to ensure that the JTS transaction service can run on any CORBA compliant ORB, we developed an ORB portability layer, which isolates the service from any idiosyncrasies of the underlying implementation.
  • SOAP Portability: for the same reasons, we built a SOAP abstraction for the Web Services transactions component.
  • Object Transaction Service: this is an implementation of the OMG's Object Transaction Service specification in Java, aka the Java Transaction Service.
  • ArjunaCore: this is the core of all of the various transaction service implementations.
  • JDBC: this module contains a wrapper for supported JDBC drivers and makes the wrapped whole transactional aware.
  • JTA: this module contains two JTA implementations - a purely local implementation, which wraps ArjunaCore and provides local JTA support, but no distributed transactions, and a version which wraps the JTS to provide distributed JTA transactions.
  • Transactional Objects: this is a set of classes for constructing transactional applications from POJOs. It has been in use for about 20 years (originally in C++).
  • WS-T: the Web Services transactions support, compliant with the specifications from the OASIS WS-TX technical committee.

Published papers

A description of the evolution of Arjuna from academic project to commercial product. A version of this was published in the USENIX Workshop on Industrial Experiences with Systems Software, Boston, MA, USA, 8 December 2002.

The evolution of a transaction processing system. Presented at the High Performance Transaction Systems workshop, 2005.

Architecture documents

The architecture of ArjunaCore. Hewlett-Packard, 2001.

Differences between OTS 1.1 and OTS 1.2. Hewlett-Packard, 2001.



Latest forum discussions

Re: Java 9 and javax.transaction
Oct 13, 2017 8:47 PM by Amos Feng
Hi Klemen, Yeah, it'…
Java 9 and javax.transaction
Oct 13, 2017 12:04 PM by Klemen Ferjancic
Hello I've seen this…
View more latest forum discussions

Latest news

JavaOne (and the latest release of Narayana!)
Sep 26, 2017 3:27 PM by Tom Jenkinson
I am very pleased to…
KIE Server updates to run with Narayana
Jun 26, 2017 10:56 AM by Tom Jenkinson
I wanted to share so…
View more latest news

Desktop wallpaper | Project Swag

Get some Narayana CoolStuff
  • EJ-TechnologyEJ-Technologies has kindly provided free JProfiler licenses.
  • JetBrainsJetBrains has kindly donated an open source IntelliJ license.
  • oXygenSyncro Soft has kindly provided free <oXygen/> XML Editor licenses.