Serverless kinda sucked without this...

SdĂ­let
VloĆŸit
  • čas pƙidĂĄn 19. 05. 2024
  • DISCLOSURE: VERCEL PAYS ME BUT NOT FOR THIS SPECIFIC VIDEO. I just wanted to rant about this
    waitUntil and the benefits for us serverless diehards is huge. I've been asking for this forever so I'm pumped I finally have it.
    Check out my Twitch, Twitter, Discord more at t3.gg
    S/O Ph4se0n3 for the awesome edit 🙏
  • Věda a technologie

Komentáƙe • 97

  • @coffeeintocode
    @coffeeintocode Pƙed 23 dny +94

    Sounds like you should just use a server

  • @thepeer
    @thepeer Pƙed 23 dny +199

    why don't you just use a 5 dollar vps

    • @Om4r37
      @Om4r37 Pƙed 23 dny +11

      great for 99% of projects, but it’s not scalable.

    • @kevgoeswoof
      @kevgoeswoof Pƙed 23 dny +78

      @@Om4r37 how about a second five dollar vps?

    • @Om4r37
      @Om4r37 Pƙed 23 dny +18

      @@kevgoeswoof idk how nobody thought of this before, you’re a genius 😂

    • @JakobRossner-qj1wo
      @JakobRossner-qj1wo Pƙed 23 dny +4

      And if you blow up? What happens if many users want to access your site at the same time? Your company dies if you cant handle a spike in user traffic.

    • @JakobRossner-qj1wo
      @JakobRossner-qj1wo Pƙed 23 dny +2

      It does not scale

  • @kontent_king
    @kontent_king Pƙed 23 dny +115

    waitUntil(...) -> but don't wait too long.
    Go and ask her out.

    • @lucaruana9404
      @lucaruana9404 Pƙed 23 dny +2

      Thank you, man, now that I've read this in the place I least would have expected to I will

  • @mohitkumar-jv2bx
    @mohitkumar-jv2bx Pƙed 23 dny +71

    Classic example of first creating the problem and then "fixing" it. 😂

  • @isakhansson917
    @isakhansson917 Pƙed 23 dny +47

    So like Cloudflare Workers?

    • @stephan553
      @stephan553 Pƙed 23 dny +18

      Theo loves to sell Cool Aid after it boiled in the Sun for three summers.

    • @drprdcts
      @drprdcts Pƙed 23 dny +3

      Theo the type of guy to create a schedule for wearing each of his clothes

    • @stephan553
      @stephan553 Pƙed 23 dny +1

      Worst of all...
      #NotAVercelShill
      Only talks hype, no technical insight...

    • @ndrut
      @ndrut Pƙed 20 dny

      @@drprdcts đŸ„¶

  • @geekthegeek730
    @geekthegeek730 Pƙed 23 dny +14

    Lambda ( response ) -> SQS -> Lambda ( wait until task ) = 🎉🎉

    • @emptycodes
      @emptycodes Pƙed 23 dny +5

      Skip the SQS, just invoke another Lambda asynchronously.

    • @BCRooke1
      @BCRooke1 Pƙed 23 dny +1

      Ah but you’d want to have retries, and maybe a dead letter

    • @raghavrudhra3327
      @raghavrudhra3327 Pƙed 23 dny

      works for your own lambda's and server side logic but if you are using nextjs and server actions. they control the infra

  • @DeltaByte
    @DeltaByte Pƙed 23 dny +5

    So like Cloudflare workers has had for years? or y'know just invoke a second lambda, or do the (at least IMO) just fire off a PutMessage to SQS since that is far more reliable for background processing anyways and with the minor overhead of having to await that put request. AWS Also support directly putting into SQS/EventBridge/SNS/Etc. directly from API Gateway anyway without you having to write even a single Lambda function (great to receiving spikes in traffic for submitting forms and such)

  • @rtorcato
    @rtorcato Pƙed 23 dny +7

    The whatever service you are wondering about is most likely Cloudlfare.

  • @JuliaOrtiz-ti6ku
    @JuliaOrtiz-ti6ku Pƙed 23 dny +2

    I had so many issues with that. Stale-while-revalidate made no sense at vercel because you had to pay the cost of waiting for revalidation while it still gave you the stale response in the end..

  • @noah12121
    @noah12121 Pƙed 23 dny +4

    Why not just use a $5 vps?

  • @helleye311
    @helleye311 Pƙed 23 dny +1

    I always wanted something like this, but I didn't even think about making my own architecture on top of lambda, I'm a noob.
    It just makes sense to do what you need to do, send response, and then finish any extra stuff like updating cache, logs etc. Not to mention streaming.

  • @cnikolov
    @cnikolov Pƙed 23 dny

    ❀ love that it didn't take you long to come around that feature, my main use case is logging and internal processing that the user doesn't/shouldn't care about

  • @mubashir3
    @mubashir3 Pƙed 23 dny +2

    For vast majority of devs serverless is a massive headache with absolute garbage ROI.

  • @Lorofol
    @Lorofol Pƙed 7 dny +1

    That streamData issue seems like it's going to bite many people in the ass.

  • @glorrin
    @glorrin Pƙed 23 dny +4

    logging,
    sending emails,
    writing stuff in db the user don't need,
    There are so many times I wanted to have those and it frustrated me because "it worked on local dev though"

    • @RaZziaN1
      @RaZziaN1 Pƙed 23 dny +1

      Stop using javascript, problem solved. It was already done 1000 times in other languages or backend languages.

    • @luka1790
      @luka1790 Pƙed 23 dny

      @@RaZziaN1 what do you use now?

    • @glorrin
      @glorrin Pƙed 23 dny +2

      @@RaZziaN1 you are right that's why I use typescript

  • @issueBucks
    @issueBucks Pƙed 23 dny

    it's crazy seeing this video because I just spent my entire weekend figuring this out.
    - Vercel should keep this same behaviour in dev (drove me crazy)
    - Also having issues with adding this to multiple requests

  • @underflowexception
    @underflowexception Pƙed 23 dny

    Laravel has queues built in. You can then interface with a number of drivers. Theres also a dispatch after response function you can use in your controllers to run arbitrary code.

  • @nicksdrumsticks
    @nicksdrumsticks Pƙed 23 dny

    I currently have a project that could use this. I'm holding back the client response artificially to wait for something it shouldn't need to wait for. Cool.

  • @FeLiNe418
    @FeLiNe418 Pƙed 23 dny +2

    The video is not sponsored by vercel BTW

  • @Salzian
    @Salzian Pƙed 23 dny +1

    So... Like cloudflare workers had since forever?

  • @MegaMage79
    @MegaMage79 Pƙed 23 dny +2

    I believe that Lambda function doesn't die after it serves sync invocation request. It is kept around for ~15mins to potentially serve more requests.

    • @gusryan
      @gusryan Pƙed 23 dny

      The deployment lives but you can't run code after you've returned a response. If you want to do that you have to invoke another lambda no?

    • @MegaMage79
      @MegaMage79 Pƙed 23 dny

      Well, for example with dotnet runtime lambda is just a regular dotnet app so it can run what it wants in the background. I would assume it's the same for node.
      But yeah, that still doesn't guarantee that secondary logic will actually eventually succeed. I wonder if the vercel invention can provide some actual guarantees

    • @gusryan
      @gusryan Pƙed 23 dny

      @@MegaMage79 It's definitely not hence the video. Once you return a response in a JS lambda the lambda is killed even if it's still running some other async task

    • @Yxcell
      @Yxcell Pƙed 23 dny

      @@gusryan What's the downside of just letting it continue running the other async task?

    • @gusryan
      @gusryan Pƙed 23 dny +1

      @@Yxcell it doesn't, that's the whole point of the video lol. Once the lambda returns the whole process is killed. If you want something to keep running you have to call to a second lambda before you return from the first one

  • @FujiLivz
    @FujiLivz Pƙed 23 dny

    The ending demo gave me nice jquery nestalgia. The waitUntil pattern idea itself seems universally awesome though, good for the client, good for the data, a tiny-bit-rougher on servers (more long-running processes). Pretty good value-add from Vercel, from the end-customer and dev perspective. If this is just something we can nab and tinker with without the need for vercel hosting, as it sounds like, I'd be down to tinker with it for a couple nights and see what happens.

  • @michaelczolko6093
    @michaelczolko6093 Pƙed 23 dny

    please promise me that you will never stop doing content!

  • @SirMeowric
    @SirMeowric Pƙed 23 dny

    Continuations still newsworthy in 2024. Maybe they should replace "off-by-one-errors" in the top 3 hard problems list.

  • @_Aarius_
    @_Aarius_ Pƙed 19 dny

    My way of handling tasks after lambda response has been to setup a lambda extension registered to invokes - its been honestly pretty painless for me (rust lambdas)

  • @MrManafon
    @MrManafon Pƙed 23 dny

    I think they’ve been lowkey doing this with revalidateTag. Remember how they removed the await from the docs.

  • @gdmk1000
    @gdmk1000 Pƙed 23 dny

    for js deno deploy is strictly superior for such characteristics

  • @dytra_io
    @dytra_io Pƙed 23 dny

    woah this is very nice

  • @karaloop9544
    @karaloop9544 Pƙed 23 dny +1

    Lambda isn't that much different from CGI of old, right?

    • @soniablanche5672
      @soniablanche5672 Pƙed 23 dny +1

      lambda is basically php

    • @BCRooke1
      @BCRooke1 Pƙed 23 dny +1

      I’ve never thought of it like that before. But I guess spinning up containers to run a program is like a distributed version of CGI in a way

  • @menglin7432
    @menglin7432 Pƙed 23 dny

    Second a few comments below. I don't think serverless itself is bad
    I think CloudFlare workers is better designed for frontend SSR workloads than AWS lambda.

  • @rawallon
    @rawallon Pƙed 23 dny +5

    Dax is anti vercel because he suggest there's already an alternative in place? oof

  • @BloodvorteX7
    @BloodvorteX7 Pƙed 23 dny

    What color scheme does he use?

  • @SameerAli-bk7vo
    @SameerAli-bk7vo Pƙed 23 dny

    the vercal is good at copying cloudflare worker :D

  • @RemiKalbe
    @RemiKalbe Pƙed 23 dny

    A queue would make way more sense especialy for retries, I'm sure there is a use for this but the example you used is not the best in my opinion.

  • @huge_letters
    @huge_letters Pƙed 23 dny

    4:30 - of course it will die, you can't write to files on lambda đŸ€“

    • @emptycodes
      @emptycodes Pƙed 22 dny +2

      You can write files at /tmp đŸ€“

  • @keithjohnson6510
    @keithjohnson6510 Pƙed 23 dny

    `.repeat(1024)`, to fudge gzip, was header -> 'accept-encoding: identity' not an option?

  • @KevinVandyTech
    @KevinVandyTech Pƙed 23 dny +1

    Why not just use a $500,000 VPS?

  • @ktxed
    @ktxed Pƙed 23 dny

    vercel shilling lol

  • @Mike-zr9wq
    @Mike-zr9wq Pƙed 23 dny +3

    Solving a pain point that doesn't really exist. Coolify + VPS = Freedom. Screw this VC funded companies