【发布时间】:2019-07-28 19:19:47
【问题描述】:
我有一个 Customer 容器,其中包含在 SQL API (DocumentDB) 和 CosmosDB 中代表单个客户的项目。我还有一个Gremlin API (GraphDB) 和客户的shoppingcart 数据。这两个数据都是临时的/暂时的。客户可以选择清除购物车,这将删除临时的customer和shoppingcart数据。
目前我分别拨打电话,拨打SQL API (DocumentDB) 和Gremlin API (GraphDB),这两个电话有效,但我想将两者都作为事务处理(ACID 原则)。要删除customer,我调用Gremblin API 并删除shoppingcart 数据,然后调用SQL API 删除customer。但是,如果使用SQL API(第二步)删除客户失败,我想回滚在第一次调用中所做的更改,这将回滚已删除的shoppingcart 数据。在 T-SQL 世界中,这是通过 commit 和 rollback 完成的。
如何围绕customer和shoppingcart数据的删除操作实现分布式事务协调?
【问题讨论】:
标签: azure azure-cosmosdb distributed-transactions azure-cosmosdb-sqlapi azure-cosmosdb-gremlinapi