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: Failed to execute BlackTie quickstarts
Feb 21, 2018 5:31 AM by Tom Jenkinson
Thanks Ashish - it a…
Re: Failed to execute BlackTie quickstarts
Feb 21, 2018 4:42 AM by Ashish Prabhune
Hi tomjenkinsonI did…
View more latest forum discussions

Latest news

Narayana periodic recovery of XA transactions
Jan 11, 2018 12:02 PM by Ondra Chaloupka
Let's talk about the…
Recovery of Narayana jdbc transactional driver
Jan 11, 2018 12:01 PM by Ondra Chaloupka
The post about jdbc …
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.