How Netflix Scales Its API with GraphQL Federation

Поділитися
Вставка
  • Опубліковано 5 жов 2024
  • InfoQ Dev Summit Boston, a two-day conference of actionable advice from senior software developers hosted by InfoQ, will take place on June 24-25, 2024 Boston, Massachusetts.
    Deep-dive into 20+ talks from senior software developers over 2 days with parallel breakout sessions. Clarify your immediate dev priorities and get practical advice to make development decisions easier and less risky.
    Register now: bit.ly/47tNEWv
    ----------------------------------------------------------------------------------------------------------------
    Video with transcript included: bit.ly/31h6rET
    Jennifer Shin and Stephen Spalding discuss Netflix’s API unification process using GraphQL Federation.
    This presentation was recorded at QCon Plus 2020: bit.ly/3pfdF6I
    #Netflix #API #GraphQL

КОМЕНТАРІ • 119

  • @nicholas1460
    @nicholas1460 3 роки тому +156

    "We did all this work and still ended up with a Monolith." Cue space music.

  • @kevinellis8115
    @kevinellis8115 2 роки тому +4

    I have to say, this was an incredible way to explain the value gained by beginning with almost a "demo" of what created the problems. The visualizations also helped immensely! Thank you!

  • @mikej9062
    @mikej9062 3 роки тому +86

    GraphQL is cool, but he doesn't know what all the user service providers are. For that, he has to go to Galactus.

    • @jamesm7172
      @jamesm7172 3 роки тому +6

      Nice reference

    • @avatar098
      @avatar098 3 роки тому +9

      He will never know what users birthdays are and he will die alone.. :(

  • @Vietnamkid1993
    @Vietnamkid1993 3 роки тому +7

    I love the abstract explanation then deep dive. It gives me time to process the information and make meaning of it

  • @shubitoxX
    @shubitoxX 3 роки тому +19

    please open source the graphql gateway too :)

  • @gossipopithecus
    @gossipopithecus 3 роки тому +5

    I am not clear, there are only 4000 films on Netflix. Why you need to create so complicated federation. I know russian websites, there are hundreds of thousands of films, and everything is much simplier.

  • @deezysec9199
    @deezysec9199 3 роки тому +10

    Imagine being an Edge Engineer at Netflix just to be reduced to your looks or voice, rather than having comments about the architectural ideas. I swear some of you ...

  • @anilkurmi5966
    @anilkurmi5966 3 роки тому +50

    Me still learning migration from Soap to Rest and then GraphQL ruin my rest

    • @koenigluki
      @koenigluki 3 роки тому +3

      @@internet4543 a LOT of businesses still use SOAP...

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

    Wonderful, wonderful explanation. Best from the field explanation I have encountered so far! Great job explaining this complex topic guys from Netflix!

  • @DerekWoolverton
    @DerekWoolverton 3 роки тому +10

    It really seems like this strategy of federating depends on having a few near-universal keys for data shared across a constellation of services that the aggregator can use for joining pieces together.

    • @freethinker3095
      @freethinker3095 3 роки тому +2

      yep seems this needs solid management of domain models

  • @RWMutex
    @RWMutex 3 роки тому +31

    really nice editing but is the laugh track really necessary?

    • @generic2928
      @generic2928 3 роки тому +20

      Generating cringe was one of the goals.

    • @MikeMike-ms1ns
      @MikeMike-ms1ns 3 роки тому

      It was super necessary - Gamebred

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

    Thanks to InfoQ. How often is it you get to study distributed systems in ASMR.

  • @MaikDiepenbroek
    @MaikDiepenbroek 3 роки тому +7

    Great talk, hands on and in depth. Good explanation as well! Thanks

  • @maxm3515
    @maxm3515 3 роки тому +2

    Very interesting! Much innovation! How did you all create the Graph visualizations?

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

    Great talk. The best video I found on the usage of GraphQL Federation. Thanks a lot.

  • @yehiayasseraboel-nga7594
    @yehiayasseraboel-nga7594 3 роки тому +12

    This is amazing! Love the graph visualizations.

  • @mayurkulkarni1990
    @mayurkulkarni1990 3 роки тому +3

    I can listen to her all day 😍. Totally my type. Chemex and wine bottles, what more could one ask for

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

    Netflix is really bold, innovative and united, hard to imagine this would be possible in any other companies at this level.

  • @funcmethod
    @funcmethod 3 роки тому +1

    Great presentation, did a great job of explaining a complex topic. Graph visualisations were neat.

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

    wow, this is great explanation which starts up from a very simple problem and builds up into interesting use case. examples, animations, background music, jennifer.. beautiful!

  • @andreivilla9009
    @andreivilla9009 3 роки тому +1

    Falcor's internal support was dropped several years ago. I can deduce they've been trying to migrate to GraphQL for several years.

  • @4saken64
    @4saken64 3 роки тому +9

    Love her voice

  • @Mystic-Voyager
    @Mystic-Voyager 3 роки тому +5

    13:51 kotlin code reads rather nicely 👌

  • @Bandude231
    @Bandude231 3 роки тому +4

    This was a fantastic video, new to the channel.

  • @ThePishty1
    @ThePishty1 3 роки тому +67

    I want her to read me bedtime stories, sick of Karl Pilkington

  • @ryanquinn1257
    @ryanquinn1257 4 місяці тому

    FALCOR mentioned!
    Cool look at what path I’m starting to go down

  • @phyzix_phyzix
    @phyzix_phyzix 3 роки тому +4

    So basically they built microservices on top of their microservices

    • @phyzix_phyzix
      @phyzix_phyzix 3 роки тому +1

      Soon they'll have to create microservices for these new microservices. Time to take a step back and realize that your original requirements have changed. Original microservices need to be updated to meet new requirements. No need to build all these layers.

  • @improcrastinating8063
    @improcrastinating8063 3 роки тому +4

    So you had an API that got too messy, so you broke it up and then aggregated requests in 1 endpoint. Then that grew too messy so that was broken up and now the top endpoint is Federation. So what happens when that gets too big?? Some new fancy library called something like constellation?

    • @andrewrobie620
      @andrewrobie620 3 роки тому

      And then someone will come along and say, "Hey you've got this layer oriented architecture. You should rework that so it's component oriented." And then someone else will come along and say, "Hey, we really need something to keep track of message routing so every service doesn't have to know about every other service."

  • @hrtummala
    @hrtummala 3 роки тому

    Netflix have best minds at dispose but I am curious about how do we bake in observability into federation as all we have is single post endpoint with different queries.

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

    amazing amazing amazing talk. Thankyou so much for sharing :D

  • @MMABeijing
    @MMABeijing 3 роки тому +1

    what s her mic?

  • @morten-nielsen
    @morten-nielsen 3 роки тому +1

    How was the graph animations made? I'm looking for something to visualise graphs.

    • @louisaldorio7251
      @louisaldorio7251 3 роки тому

      U can use a tools called istio, to visualize yout services

  • @milkyway9225
    @milkyway9225 3 роки тому +2

    wait, so FalcorJS exist or am I hallucinating?

  • @ivaniliev93
    @ivaniliev93 3 роки тому

    I wonder how many different queries they have.

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

    What tool is being used to render the graphs in 3D?

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

    How the mutations work in federation model?

  • @ragavkb2597
    @ragavkb2597 3 роки тому

    Thanks for the talk! I'm curious how would a federated mutation look like ? As each domain service may fail a mutation individually, I assume the front end has to be designed to keep partial success in mind ?

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

      That's true. The response is always 200 and clients has to handle the responses gracefully

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

    Excellent. Thanks.

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

    Apollo federation doesn't support subscriptions. It's really grinding my gears.

  • @DamjanDimitrioski
    @DamjanDimitrioski 3 роки тому

    How do you handle package (subscription types) using GraphQL, in the resolvers or?
    And are the resolvers communicating directly with the database or you have some service in front of it?

    • @SteamedBunX
      @SteamedBunX 3 роки тому

      Resolvers are just API logics, you can use resolver to talk to the database. And there is subscription type in graphql

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

      @@SteamedBunX apollo federation doesn't support graphql subscriptions

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

      @@gritcrit4385 D: it doesnt?

  • @provian
    @provian 3 роки тому +7

    best voice ever

  • @latestcoder
    @latestcoder 3 роки тому +3

    their slack support channel as well, their slack support channel as well

  • @swehub3666
    @swehub3666 3 роки тому

    Great video!

  • @vitorvidal5350
    @vitorvidal5350 3 роки тому +17

    [WARNING] Very very loud meme at around 9:00 mins

  • @TheMsnitish
    @TheMsnitish 3 роки тому +6

    ASMR feels

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

      Oh yes, I wish I had them explaining me everything everyday. 🤣

  • @RomanScherbatyuk
    @RomanScherbatyuk 3 роки тому +2

    where's primagen doing vscode ;)

  • @barbenaar
    @barbenaar 3 роки тому

    nice talk, thanks!

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

    Amazing

  • @wafiqb7205
    @wafiqb7205 3 роки тому +2

    So the family is coming for lunch, you have a big family. You decided to go all out and bake a few different cakes. It's quite difficult to feed everyone and distribute the cakes whilst they are whole so we slice them up and give everyone a spoon, now everybody is happily tasting the different cakes distributed across the table with multiple spoons until someone comes along and says, let's get rid of all the spoons and use a single bigger spoon so we only have one feed and hopefully if all goes well this new spoon will be able to feed us all at once. :@ The End
    Are the speakers humanoids? they kinda come across as robotic lol... GraphQL no doubt has its benefits in terms of selectively plucking properties, aggregation of multiple graphs when federated, typed values, etc, but my gosh schemas can become huge when made up of multiple fragments and maintenance seems to increase from my experience, also Rest to graphQL conversion is enough to make you want to smash your workstation :|

  • @ravi2519
    @ravi2519 3 роки тому +1

    I know a lot how Netflix is doing it, but not so much about Prime Video or rest! All thanks to how much Netflix open source or take pain to make us understand what they are doing.

  • @louisaldorio7251
    @louisaldorio7251 3 роки тому +1

    I have been implementing graphql for almost 2 years in my organization, we also implement graphql federation, so we find out that graphql federation cause a query complexity (n + 1), so if we query an array , which every object in the array , does federated /extend to other schema in other service, this will cause too many query, especially if the logic on the core federated schema talk to database, this is really time consumjng and resource consuming when a query is executed, thr we try implementing dataloaders with federation, but the samething happen (n + 1), do you guys have solution for this?, we currently use golang with graphql , we also implement apollo gateway as the gateway

  • @maladjustedtv
    @maladjustedtv 3 роки тому +6

    MY GOD she's gorgeous!!

  • @israelayokunnu7974
    @israelayokunnu7974 3 роки тому +1

    oh my. Netflix Genesis

  • @gautamkrishnar
    @gautamkrishnar 3 роки тому

    this is just lit

  • @TouiKinMinao
    @TouiKinMinao 3 роки тому +6

    Hard to think that Jennifer is senpai in this realm with that voice .......

  • @ThePandaGuitar
    @ThePandaGuitar 3 роки тому +6

    Eyeglasses scale

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

    The sound effects are very annoying. Besides that nice talk

  • @IIIxwaveIII
    @IIIxwaveIII 3 роки тому +1

    is it possible I am in love with
    Jennifer Shin without ever meeting her & seeing her for the first time on this vid ? :)

  • @edenassos
    @edenassos 3 роки тому +1

    Stephen looks like a James Bond villain.

  • @maxbashyrov5785
    @maxbashyrov5785 8 місяців тому

    These bottles of red were distracting me all the time.

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

    vim pelo Thales😄

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

    Would you trust your api federation to a haircut that bad?

  • @multiservicosreptecno3786
    @multiservicosreptecno3786 3 роки тому

    🙄👏🏼👏🏼👏🏼👏🏼👏🏼👏🏼👏🏼👏🏼👏🏼

  • @kalidsherefuddin
    @kalidsherefuddin 3 роки тому

    Please help me

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

    hi jennifer. what is a woman?

  • @aalto95
    @aalto95 3 роки тому

    8:36 jesus fucking christ

  • @alexaltoespiridion1088
    @alexaltoespiridion1088 3 роки тому

    I love you

  • @allanwind295
    @allanwind295 3 роки тому +3

    The intro was off-putting. Unless your focus is how your problem applies to others. It's just advertisement.

    • @allanwind295
      @allanwind295 3 роки тому

      ​@@iAmCracky I tried to articulate why I thought the intro was off-putting in the initially message (and didn't succeed so I edited out), but I think it's the combination of "old-school PBS computers are the future" whilst having a low S/N. The first thing she says is "we have 100s of mid-tier services". This just summarized the first 2 minutes of the video. Who is the audience? What was the audience expected to learn from this video (other than it was made by Netflix)? Is that information applicable to anyone else? So let's jump to the summary...uh... no, that's a panel discussion. Look at the comments and what did people take away from it?

    • @dealloc
      @dealloc 3 роки тому +2

      @@allanwind295 No idea what you're on about. You're reading too much into it. If you didn't like the intro, fine, skip it and move on.

    • @allanwind295
      @allanwind295 3 роки тому

      @@dealloc Thanks for the advise. I unsubscribed from InfoQ.

    • @kingsleyoji649
      @kingsleyoji649 3 роки тому +1

      @@allanwind295 is there another youtube resource that you like?
      I'm a learner so this is blowing my mind lol. InfoQ seems like a whole new world to me.

    • @allanwind295
      @allanwind295 3 роки тому +1

      ​@@kingsleyoji649 I just wrote you a long reply. Hopefully it didn't go to /dev/null. It depends on what you are interested. I prefer articles to video. lobste.rs or hacker news. Lots of blogs. Research articles. Def Conf always blows my mind. Strange Loop is great. USENIX is a firehose of content. I always learn something from Martin Thompson and Brendan Gregg.

  • @AxiRyu
    @AxiRyu 3 роки тому +4

    So, aren't we going to talk about how hot she is? I had no interest in graphQL, until I saw her talking about it :D

  • @thunderbolt997
    @thunderbolt997 3 роки тому +1

    laugh tracks are dead in 2021
    in todays world the user decides if something is funny or not and dont like to be told by a laugh track "this is funny, now laugh"
    but i guess a compromise was made between making the video more enjoyable letting the presenter have a personality with some jokes/funny story
    but at the same time sigifying with the laugh track that this was a lighthearted joke/event and not incompetency on the presenters part.

    • @andrewrobie620
      @andrewrobie620 3 роки тому

      If watching far too many talks by Joe Armstrong has taught me anything, it's that a good presenter should be able to convey that something was a lighthearted joke by themselves.

  • @KevinMcAfee
    @KevinMcAfee 3 роки тому

    My new bible

  • @rogerhill1030
    @rogerhill1030 3 роки тому

    religious theme introduction is dumb. Just get to the story

  • @khalidhamid7448
    @khalidhamid7448 3 роки тому +1

    That girl glass is way too big

  • @Quarknjaguar
    @Quarknjaguar 3 роки тому +2

    she's cute

  • @lorezyra
    @lorezyra 3 роки тому +1

    The sound effects in this video are not just horrible, but absurd!! If it wasn't for the very cute Jennifer, I'd down-vote this video...

  • @gofudgeyourselves9024
    @gofudgeyourselves9024 3 роки тому

    The BGM is from the movie called Only God Forgives. Thank me later. Also i didnt shazamed it.

    • @dealloc
      @dealloc 3 роки тому +1

      It's the theme from Stranger Things. Although they sound similar.

    • @acer220202
      @acer220202 3 роки тому

      @@dealloc 0:01 through 0:07? Doesnt sound like it.

    • @dealloc
      @dealloc 3 роки тому +1

      @@acer220202 No, the intro of the presentation.

  • @WAgung
    @WAgung 3 роки тому

    amazing