我有两个用例:
在上述两种情况中,我必须编写两个步骤,这些步骤可以打破进程的原子性质。有没有办法在一个步骤中完成上述任何操作?
谢谢,
Anuj
答案 0 :(得分:0)
这将需要多个(在这种情况下为2个)系统之间的分布式事务。您可以通过编写自己的“事务”并处理它来实现这样的目标。但没有开箱即用的解决方案。
请注意,对于某些AWS服务,您将无法“漫游”您所做的更改。最好的例子是SQS和SNS。因此,对于这种情况,首先写入DynamoDB会更好,而不是检查它是否存在,如果你不相信API响应(但你现在必须知道DynamoDB具有最终的一致性),然后尝试向SQS / SNS发送消息,如果失败则从DynamoDB中删除数据。此外,您将无法验证该消息是否在SQS中(API响应旁边)。
如果您没有任何特殊理由进行此类交易,我只会信任AWS基础架构,因为您正在发送小消息(链接,sqs消息)。