DistributedTransaction is hard. And JavaLanguage is not easy either. Apparently sometimes, somewhere, someone felt it worthwhile to implement JavaDistributedTransaction. I hope there will be some good stories coming through, for purposes of mutual education. * Note being an outsider, I thought JavaTwoEnterpriseEdition and EnterpriseJavaBeans are synonyms of sorts. And I have not seen much Java mentioned in EnterpriseComputing outside of JavaTwoEnterpriseEdition. Maybe some analogy with RestArchitecturalStyle of WebServices, something that is not well known (compared to SOAP), but does the job well? JavaTwoEnterpriseEdition is a federation of several specifications, one of which is the JavaTransactionApi (JTA). So you don't need EJB to do distributed transactions. EnterpriseJavaBeans is a component model that also has implicit transaction demarcation. You do need a JTA-based transaction coordinator, which usually comes with a J2EE server. JTA doesn't re-invent the transaction wheel, it's just a binding to the XA standard model and re-uses CorbaIiop as one of the accepted wire protocols.