我正在尝试实现客户端和服务器并定义他们的交互。客户端使用Golang设计,服务器在Node.js中设计,并使用gRPC进行交互。
所以基本要点是:
但是说发生了一些事情,使得流程在步骤2和3之间死亡(客户端流程以某种方式终止)。确保我的后端数据库不反映与现实不一致的系统状态的最佳方法是什么?我确信这不是一个新问题,只是想指出人们通常如何应对这种类型的设计。
所以我已经考虑过重新设计这种交互,以便服务器是处理系统更改的实体 - 这样一切都在同一个请求和后端处理 - 但我使用的是设计的开源技术在Go中(所以我可以轻松地将它包装在我的Go客户端中)。换句话说,客户端必须是执行系统更改操作的实体。
提前致谢!
答案 0 :(得分:0)
如果4.没有发生,则服务器回滚在1中完成的事务,并且1-4的整个操作是原子的。