tbf i'm not convinced in BFF. It can get messy and over-bloated fast. That's just my experience from my current employer. I'm aware that's an issue of the team which is developing multiple BFFs. We can also consider an API Gateway like KrakenD, Kong, Tyk to modify responses. (it would be possible with nginx too) So we could write less code, probably even less dependencies to maintain. (no additional backends) Graphql is made for this problem too. (REST is easier to implement and has a superior error handling. You need to be check permissions for Grahql carefully. One request can include multiple queries) This isn't a complete list. Just some ideas. Good Video
@bulama22 сағат бұрын
@sinema7101 I agree that BFFs do introduce more complexity in terms of components and source code to handle. Team structure and skills within teams is also a big factor otherwise a single team handling multiple components can become overwhelming. As for code being bloated, it depends on what bloated means. In my view bloated code is code which handles or tries to do more than it should, like a single API endpoint having to be aware of the specific needs of different clients. In such cases having BFF lets you isolate the needs of each client but then the trade off is more complexity and if you lack the team structure to support it, it just complicates things. Thank you for your feedback.
@abubakarhassan624116 сағат бұрын
Good video. Would you recommend using mono-repo or multi-repo to make it smoother for maintenance and collaborating on a BFF Architectural Pattern?
@bulama13 сағат бұрын
I would say multi-repo. Each BFF in its own repo. That’s what I’ve done with teams I’ve worked with. Thanks for your feedback.
@abubakarhassan624113 сағат бұрын
@@bulama thank you.
@socar-plКүн бұрын
so it's not one gateway but two gateways with dedicated DTO's for each platform
@bulama22 сағат бұрын
That’s another way to think about it. Though the meaning that tends to be associated with “gateway” is “one and only” while with BFFs you would expect one per client/platform as you rightly put it.