Kong:将业务逻辑 and/or 业务数据存储在 kong 数据存储中是个好主意吗?

Kong: Is it a good idea to store business logic and/or business data in the kong datastore?

我了解 Kong 使用的数据存储用于持久存储配置以启用水平缩放。

我想知道的是,是否也可以将实际业务数据存储在 api 网关的数据源本身中,并根据从该数据源读取的数据路由 api。

例如 如果用户过去购买过 3 位不同作者的书籍,我只想向他显示这些作者的所有书籍的列表。这里订单历史就是业务数据,只给他看那些作者的书就是业务逻辑。

请求通过api网关后,我可以正常获取用户的历史订单,然后显示所需的数据。

但是是否可以在 kong 数据源中保存用户的订单历史记录并且在lua中编写一个自定义插件来获取来自网关本身的用户的作者列表,并将作者的 id 传递给所需的模块,然后该模块可以只显示这些作者的书籍?

如果可能的话,这样做是否明智?

虽然利用底层的 Kong DAO 接口是可能的,但我通常不会将您的业务逻辑与 Kong 使用的模式联系起来,因为 DAO 接口将来可能会更改以响应新的 Kong 需求,如果发生这种情况,您将无法控制您的业务逻辑(除非您还维护 DAO 实现)。

一般来说,我会将所有这些逻辑托管在一个单独的服务中,然后使用例如内部 HTTP 客户端从 Kong 插件查询该服务。