我正在编写一个必须跨3个不同平台进行通信的应用程序。两个通过REST API(没有jdbc驱动程序)公开它们的数据库,一个是本机JDBC连接(例如:Derby,MySQL,Oracle等)。
我的问题是,在更新数据时我无法确保任何ACID',因为这三个应该同时更新。
我试过阅读Spring XA,但似乎2PC和1PC都需要某种形式的事务后端。鉴于我的3个目的地中有2个是REST API,我没有任何交易。只是一个保存/更新选项。
我是否可以使用哪些技术来确保3个源同步,并且如果写入失败(即:REST端点不可用等),我不会遇到不一致的状态?
交易示例如下:
我是否可以采用某种形式的XA来包装所有内容以确保一致性?