我有一个lambda函数,它从消息队列中接收新注册用户的数据,然后将该数据插入两个不同的数据库中.
这两个数据库属于两个不同的微服务.第一用户服务使用RDS Postgres,第二管理服务的数据库基本上是单个DynamoDB表.
I want to achieve "all or nothing" behavior for data insertions in the two databases - either insertion in both succeeds or both fails.个
- 我怎样才能有一种"原子事务"来插入两个数据库,实现"全有或全无"的行为?
- 如果数据被插入到管理服务的DynamoDB表中,但由于某种原因无法插入到用户服务的Postgres表中--我该如何在DyanamoDB中回滚插入操作呢?
我可能会在代码级实现这种功能,但如果假设我在5个而不是2个不同的数据库中插入了"全有或全无",那么代码将会非常混乱.
我想知道当涉及到与不同的DB交互时,是否有一些标准的方法来实现类似原子事务的行为.