Home

nonXa

NonXa is a software framework and reference implementation designed to integrate non-XA resources—systems that do not support distributed transactions—into broader transactional workflows. It provides a coordination layer that enables applications to participate in multi-resource workflows while preserving local consistency guarantees through compensating actions and application-managed recovery.

The name combines 'non' and 'XA', alluding to resources that fall outside the standard XA (eXtended Architecture)

Architecture and operation: The framework exposes resource adapters for various backends, a nonXa coordinator that manages

History and reception: The concept emerged in academic and industrial discussions during the 2010s as a pragmatic

Applications and example scenarios: Integrating a non-XA relational database with a central transaction manager, coordinating a

Criticism and limitations: NonXa introduces additional complexity, operational overhead, and potential risk of data divergence if

See also: XA transactions; two-phase commit; distributed transactions; compensating transaction pattern.

two-phase
commit
model.
NonXa
is
intended
for
environments
where
full
distributed
transactions
are
impractical,
but
some
transactional
behavior
is
still
desirable.
a
logical
transaction,
and
a
policy
engine
for
commit,
rollback,
and
recovery.
Resources
are
wrapped
so
that
operations
can
be
retried,
idempotent,
and
compensable.
The
coordination
protocol
typically
delegates
final
commit
decisions
to
the
application
layer
while
providing
horizon-limited
consistency
guarantees.
alternative
to
full
XA.
Experimental
implementations
demonstrated
its
viability
for
legacy
databases
and
services
that
cannot
participate
in
distributed
transactions.
message
queue
and
a
legacy
CRM
system,
or
orchestrating
microservices
that
perform
compensating
transactions
rather
than
strict
two-phase
commit.
compensating
actions
are
not
carefully
designed.
It
does
not
provide
true
global
atomicity
and
relies
on
application-level
correctness
and
idempotence.