是否在消息上打标?

发布时间:2024年01月02日

场景

用户可以创建某个虚拟形象,将该形象发布到聊天平台,然后和该形象进行聊天。

用户创建虚拟形象的时候,开启备份功能,将自己的聊天记录备份到指定位置,也可以关闭开关,停止备份功能。

聊天功能和备份功能分属两个部门,在这个场景下,我们需要怎么处理?

消息打标.png

设计

目前有两个方案可以选择

  1. Chat服务投递消息的时候,将是否要备份的信息也放到消息里

  2. Chat服务不做特殊处理,备份服务主动从形象创作工厂获取形象信息,判断是否开启了备份

如果不想任何扩展的话,两个方案各有优缺点

方案一方案二
优点1.数据一致性好:数据是否需要处理,标记的很清楚1.独立:事情自己就做了,不需要依靠别的服务
缺点1.变动感知:Chat服务需要对该功能有所感知,如果功能有变化,也需要同步修改1. 一致性问题:即使实时获取形象信息,也有边界问题;2.如果要解决边界问题,形象设计工厂就要做版本,备份服务查询的时候,根据时间找指定版本的信息,逻辑会复杂很多
现在扩展一下,如果聊天APP觉得让每个用户都能独自控制自己的开关,方案二完全无法用了。总不能让备份服务去获取用户的配置吧。

所以打标的信息最好还是放到消息上。至于变动感知问题,Chat服务可以通过协调好规范,这样无论是增加新的功能还是改变原有的功能,chat服务都不需要感知,会自动透传出去。

总结

其实工作中能碰到很多有意思的设计点,仔细思考一下,能发现很多新的想法,也能对业务有更深的理解。

文章来源:https://blog.csdn.net/shida219/article/details/135330742
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。