我在亚洲有一个用于PostgreSQL设置的RDS,并希望在美国有一个读取副本.
但遗憾的是,从官方网站上发现,只有RDS for MySQL具有跨区域副本但不适用于PostgreSQL.
我看到这个页面介绍了将数据迁移到RDS for PostgreSQL和从RDS迁移出来的其他方法.
如果不是自己在美国购买EC2来安装PostgreSQL,有没有办法将ASIA RDS的数据同步到US RDS?
我正在研究DDD和事件源中的编程.
我看到一个例子,当调用域逻辑时(例如Order.placeOrder())它会发布一个事件(例如OrderPlaced).事件将作为事件存储发送到MQ.
域逻辑(Order.placeOrder())应该是一个原子API,@Transactional如果使用Spring作为事务管理器,它应该有注释.
现在我的问题是:
如何确保数据库更改和事件发送在同一个事务中?即如果在将数据提交到DB时出现任何错误,则该事件永远不应发送给MQ.
我知道有像XA或2阶段提交这样的解决方案来强制DB更新并在同一事务中发送MQ消息.但似乎现在还没有广泛使用.
如果仍然使用Spring @Transactional注释而没有XA,那么在事务成功提交后我们可能会做一些逻辑吗?这样做的最佳做法是什么?
java spring domain-driven-design transactions event-handling