将Spring状态机集成到Hynical架构中

gblwokeq  于 5个月前  发布在  Spring
关注(0)|答案(1)|浏览(68)

我正在开发一个使用六边形架构的Sping Boot 应用程序。该应用程序使用两个Spring状态机:一个用于请求进程,另一个用于接收进程。我的主要挑战是有效地将这些状态机集成到六边形架构中,特别是考虑以下需求:
1.状态机发送消息和等待响应:状态机需要发送消息并等待响应,然后才能进入下一个状态。
1.在状态内进行REST调用:在某些状态下,状态机需要执行各种REST调用。

问题:

  • 1.基于HALCONAL架构的业务逻辑实现:*

在六边形架构中,哪里是实现状态转换逻辑的最佳位置,特别是考虑到在某些状态下发送/等待消息和进行REST调用的需求?

  • 2.状态机和服务层交互:*

在这种情况下,我应该如何构建服务层和状态机之间的交互?我正在寻找适合六边形架构范式并确保可维护性的最佳实践。
您能否提供在Sping Boot 中配置状态机的示例或最佳实践,其中状态涉及进行REST调用?

  • 3.处理消息响应:*

如何有效地管理状态机发送消息并需要在移动到下一个状态之前等待响应的场景?

  • 4.对于状态转换,使用Action、Listeners或Services哪个更好?*

任何指导、示例或最佳实践都将非常有帮助。感谢您的时间和帮助!

  • 我所做的和我所期待的:*

到目前为止,我已经按照六边形架构原则建立了应用程序的基本结构,将核心逻辑与外部依赖项分离,还实现了两个状态机的配置

期望:

对于消息传递逻辑,我希望状态机处理发送消息、暂停其流,然后在接收到相应响应时恢复或转换到新状态,类似于TCP类通信模型。
对于状态中的决策,将需要对其他组件的REST调用。

c3frrgcw

c3frrgcw1#

1、2:目前还不清楚你是如何使用状态机的,也不清楚你为什么要使用它们。但是如果你将它们用作管弦乐队,可以访问所有不同的层(你提到的业务逻辑,消息+ rest调用等),那么这显然违反了架构。如果不是,那么它应该直接放在哪一层。
二、三:我没有看到斗争。如果你不做droppc调用,那么执行不会进展,直到你得到回应。有什么问题,我没有看到?
4:对于状态转换,我只看到了要使用的操作。侦听器也可以用于其他一些操作,比如listening to errors

相关问题