我们有一个服务,该服务使用异步通信(消息队列)与另一个服务进行通信,但是客户端服务器通信仍然通过REST进行。现在我们有一个要求,当用户对服务A执行持久调用时,它应该触发对服务B的某些修改。仅当两个服务成功完成各自的任务时,客户端才应该获得成功响应。这样做的原因是我们需要确保用户不应该对部分完成的数据执行下一步。由于域的性质,我们对并发用户不感兴趣。我们用Web套接字,AMQP等协议替换REST客户端服务器实现的功能非常有限。
通过异步服务间通信实现这种情况的方法有哪些?有没有著名的编程模式/风格可以实现这种要求? Java上有任何框架或库吗?
或者依靠异步通信来实现阻塞业务需求是一个坏主意吗?