分布式事务 BFF?惊到我了

2021-12-09 11:23:19 +08:00
 4771314

公司有一个前端小组在做一些 BFF 的事情来对接业务,但是系统的划分好像出了点问题,BFF 层需要处理事务 比如:一个数据写入操作,会调用多个后端的服务来实现,BFF 要保证这个写入操作的原子性 我当时就惊呆了,这 TM 是 BFF ,这不是后端吗?

服务的划分我不懂,但是这个操作需要前端来做,至上在我看来是不对的,后端提供的写入服务就应该保证这些,若是前端来实现的话,其他业务要使用,是不是也要自己保证这个写入操作的原子性?

这里有没有大佬可以解惑下

3755 次点击
所在节点    程序员
13 条回复
zoharSoul
2021-12-09 11:27:50 +08:00
你想着你不是前端, 是全栈不就好了
libook
2021-12-09 11:37:56 +08:00
BFF 通常只对数据进行聚合和初加工,分布式事务确实也没见过在 BFF 里做的。

前端组长有责任出面跟后端小组商定架构划分规则,什么功能应该由前端来做,什么功能应该后端来做;前后端耦合严重的话,会极大提高维护成本。
Rwing
2021-12-09 12:41:32 +08:00
讲道理,BFF 肯定不应该有事务
FantaMole
2021-12-09 13:47:38 +08:00
分布式事务由后端来进行保证,BFF 负责数据的筛选裁剪和聚合。这个划分应该是适用于绝大多数情况。而且,BFF 这个服务,也应该由后端来写才是,毕竟名字是 for frontend 的 backend 。不过我倒是觉得有点厉害,你们公司前端都能整起后端业务了,BFF 层是用 Node.js 写的吗
wolfie
2021-12-09 14:01:38 +08:00
零几年的老项目见过一次,一个人写的前后端图省事。
去年一个菜鸡同事写过一次,自动生成一个 CRUD 以后,告诉前端 你先调用 A 再调用 B ....。

不是《能不能》在前端做的问题。
jokefaker
2021-12-09 15:32:20 +08:00
保证原子和事务是两回事情。。
pengtdyd
2021-12-09 15:35:02 +08:00
很正常啊!垃圾的架构师必然就会有垃圾的项目。
JudyHal
2021-12-09 15:43:49 +08:00
没办法现在靠谱的后端太少了,很多事情只能前端来做
hongweiliuruige
2021-12-09 16:27:33 +08:00
如果写操作要调用好几个,,那还真得分布式事务,如果只调用一个那就后台实现了
blessyou
2021-12-09 17:44:30 +08:00
@wolfie #5 接手的一个项目里就有这个操作 我读了半天前后端代码 把操作逻辑合并到数据库里了
defage
2021-12-09 17:55:39 +08:00
软件工程界没有什么问题是不能通过抽出一层来解决的,如果不行就再抽出一层。
所以你可以再加一个层级 BFF-backend ,瞬间解决,快去搞 =。=
EscYezi
2021-12-09 18:04:52 +08:00
这是搞了个 nodejs 的中间层吗?
4771314
2021-12-10 17:30:33 +08:00
就是使用 Node 做了一个 BFF
已经分工好了,事务的处理后端处理,BFF 不用关心这个
虽然不是我做的,但是一开始我还是很惊讶的,BFF 需要做分布式事务

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/821073

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX