What Is A Backend For A Frontend (BFF) Architecture Pattern

Поділитися
Вставка
  • Опубліковано 4 жов 2024

КОМЕНТАРІ • 42

  • @Zaaaainn
    @Zaaaainn Рік тому +6

    Concise, to the point, with great clarity on the pros and cons. Very well explained!

  • @jacintduduka9137
    @jacintduduka9137 Рік тому +6

    Its intriguing how the same concepts suddenly change name in the IT world. Many years ago, we had SOA, which brought enterprise service bus, then it came API gateways, and now BFF. My head is spinning with all this terminology referring to the same concepts :)

    • @GoingHeadlesswithJohn
      @GoingHeadlesswithJohn  Рік тому +4

      I have been around long enough to also see the cyclical nature of our industry. Although old concepts are renewed just as in fashion old style revivals always have new and often potent nuances. Seeing similar things before gives you the advantage of deeper insight and understanding of these nuances.

    • @masterflitzer
      @masterflitzer 2 місяці тому

      i only know api gateways lol

  • @ivankostadinov5186
    @ivankostadinov5186 2 роки тому +1

    Great video with the topic well explined. 6 mins and I'm in!.

  • @annathompson5306
    @annathompson5306 2 роки тому

    Best educational videos on headless solution.

  • @TerenceRyan-y2q
    @TerenceRyan-y2q Рік тому

    Backend for a frontend...I have known a few of those... well explained.

  • @gosiastefanowicz5599
    @gosiastefanowicz5599 11 місяців тому

    It was a pleasure to watch this. Thank You.

  • @christhornham
    @christhornham Рік тому

    After studying architecture for two weeks, I sketched out this same pattern last night. I didn’t know it had a name. Thanks for making this excellent video.

  • @이든-i9z
    @이든-i9z 10 місяців тому

    The easiest video for bff beginners!

  • @AZ-mi2wj
    @AZ-mi2wj 2 роки тому +1

    Very nicely explained! Haven't seen any comparable explanation which was equivalently well presented. Pls keep going

  • @carlosbenavides670
    @carlosbenavides670 2 роки тому +1

    Beautifully explained

  • @123taran321
    @123taran321 2 роки тому +1

    Amazing, perfect video for what I need!

  • @mararosa2404
    @mararosa2404 Рік тому

    Very nicely and concise explained. Thank you!

  • @WhiteSiroi
    @WhiteSiroi Рік тому +1

    thank you, very helpful

  • @youriregnaud8461
    @youriregnaud8461 Рік тому +1

    Great channel! Will be nice to have a video about API Gateway and BBF. When use API Gateway, BBF, both???

  • @djsadsa2933
    @djsadsa2933 Рік тому

    Best friend forever💅

  • @praskatti
    @praskatti 2 роки тому +2

    @John, thanks for the nice content. Safe to say BFF can be used for query centric purposes [GET requests] and for CUD ops, we fall back to the API Gateway as CUD ops are generally device agnostic? Also in this architecture, how we handle requests where auth tokens need to be validated ? Something API gateway pattern is known for

  • @christopher5731
    @christopher5731 7 місяців тому

    great explanation

  • @brunchkim4197
    @brunchkim4197 9 місяців тому

    Thanks for the help

  • @OhDearBabajan
    @OhDearBabajan 7 місяців тому

    Great content, John! Would you say it's common to see a headless software architecture being used with microservices/containers?

  • @niveditya
    @niveditya 2 роки тому

    Very well explained! Thank you :)

  • @guilhermegavioli5647
    @guilhermegavioli5647 4 місяці тому +1

    Still don't see the point of this. From your explanation, what I can get is that the bff acts like a mapper between the client and api, you said it helps separating different frontend clients concerns but still I can do that without bff. Sounds like a fancy term, to augment the complexity of applications where the tradeOff for that is pretty small (higher frontend costs, higher latency, because of batching) vs (a mapper / adapter, that by the way could be contained in the frontend itself, if the only reason for its existance is mapping values, and also you get a smaller bundle size maybe.

    • @jordanwalker7076
      @jordanwalker7076 3 місяці тому

      Exactly, the complexity of mapping and data aggregation still exists, it's just not in the front end anymore. I think the real advantage is separation of concerns; with a BFF, you isolate the complexity of data mapping and aggregation into a single service/component, and remove those concerns from your front end (which might have many other concerns to deal with).

    • @guilhermegavioli5647
      @guilhermegavioli5647 3 місяці тому +1

      @@jordanwalker7076 I see, I've studied a bit about Amazon API GATEWAY, and there is this thing called mapping templates, which sort of do that, you defined it beautifully, it is about "isolating the complexity of data mapping and aggregation into a single service/component"

  • @tamilan247
    @tamilan247 Рік тому

    Thanks a ton :)

  • @rafaelrocha3991
    @rafaelrocha3991 2 роки тому +1

    Really great channel and a very important topic when it comes to scalability and independence of each delivery team. I’m currently using this pattern in my current company, currently building a PoC. So far I’ve been having issues when it comes to data consistency and I don’t want to couple the BFF with our micro services communication message buses since we use them as state machines. So I was thinking of exploring persistence on BFF like a materialised view or a redis cache, any pointers in this front?

  • @jordanwalker7076
    @jordanwalker7076 3 місяці тому

    Don't quite see the benefits described here in terms of reducing complexity, because you haven't really reduced the overall complexity as such, you've just moved it out of the front end. But you still have to do all the mapping and aggregation of multiple calls in the BFF. The real advantage is separation of concerns -- all that complexity (aggregating and mapping data from multiple services) is isolated into its own service.

  • @BernardVisagie
    @BernardVisagie Рік тому

    4:30, when you say the front end development teams will be responsible for the BFF's; could this be constrewed that the front end teams are responsible for integration with the BFF's and consulting with a back end team on the design and implmentation of the BFF, or rather that the front end teams are responsible and should take ownership of the entire BFF? Including the design of how the BFF integrates with the relevant back ends? As in my experience the front end teams like integrating with API's as opposed to building and designing them, but perhaps that is just my small sample.

  • @sanisaj1147
    @sanisaj1147 Рік тому

    brilliant

  • @dgcp354
    @dgcp354 2 роки тому

    real-life example will be good

  • @mrabetrafik
    @mrabetrafik 2 роки тому

    what is the typical or recommended stack, framework or language used for a BFF?

  • @amirnz
    @amirnz Рік тому

    Would the BFF also be built as a bunch of micro services or would you say that is an overkill?

    • @GoingHeadlesswithJohn
      @GoingHeadlesswithJohn  Рік тому

      The BFF is the API for you frontend team to use so it doesn't have to be microservices, it does seem to me to be overkill, as I the BFF will be sitting on top of your backend that could be built will Microservices

  • @manmohanmundhraa3087
    @manmohanmundhraa3087 Рік тому

    Is BFF is for initial load of data ? what happens when frontent needs 1 small current data after page load ? should frontend call bff or just call respective microservice ?

    • @GoingHeadlesswithJohn
      @GoingHeadlesswithJohn  Рік тому +1

      The BFF is not for the initial load of data but act as the communication layer between your app and other APIs. It is allows the front end devs to build an API specifically for the app they are building.

  • @Muslim_Adam
    @Muslim_Adam 2 роки тому +2

    Use graphQL

    • @OP-tw6bf
      @OP-tw6bf Рік тому

      Was thinking the same thing. But would this fully replace all benefits of a BFF, or only partial?

  • @j.j.9538
    @j.j.9538 Рік тому

    I feel like this practice is self-evident, but teams have implemented microservices poorly, so now we need a new buzzword

  • @genesisguerrero7151
    @genesisguerrero7151 Рік тому

    Graphql fit there

  • @juozaskrusna4205
    @juozaskrusna4205 3 місяці тому

    okok