Serverless With Servers? FLAME is...weird

Поделиться
HTML-код
  • Опубликовано: 8 фев 2025

Комментарии • 59

  • @LusidDreaming
    @LusidDreaming Год назад +77

    I've been working on a mostly serverless application for about 8 months now, and at this point I'm tired of hearing about "no more servers or containers to manage." I honestly miss containers at this point. It seems like its going to be a lot more simple and easier to maintain, but my experience has been that you are just trading one set of complexities for another.

  • @2mbst1
    @2mbst1 Год назад +19

    I just started learning elixir last week, because I couldn’t believe the amount of work required to have scaling background jobs etc in JS land. And Im baffled at how many problems just don’t exist in the space - or are solved WAY more elegantly. FLAME is like the icing on this delicious cake.

    • @سنابل-الفردوس
      @سنابل-الفردوس 3 месяца назад

      i am using Gleam which is bassically elixir if it had a little bit of rust syntax and had a geat type system
      gleam compiles to Erlang so you get the same powers of otp here too

  • @runtimejpp
    @runtimejpp Год назад +6

    tried elixir after the Jose interview and it seemed super tough, The pattern matching is a new concept to me but the potential seemed limitless. Props to elixir devs

  • @slobodan-milosevic
    @slobodan-milosevic Год назад +4

    7:28 thats a fair take, its also what makes elixir and erlang world so great because you could have a machine running some elixir or erlang code to maintain and give database connections from a pool and as long as your lambda is running on the same network or cluster, you don't need to worry about it that much

    • @kp8752
      @kp8752 Год назад +2

      Yeah I’m pretty sure ecto already handles his complaints

    • @hidekxyz
      @hidekxyz Год назад

      ecto is dope

    • @venir_dev
      @venir_dev 8 месяцев назад

      @@kp8752 yeah indeed that whole concern is basically meaningless - ecto is already solving pooling, and since FLAME just lives in an already - allegedly - well written application...

  • @slobodan-milosevic
    @slobodan-milosevic Год назад

    I'm very excited about this, this makes me think about several ideas to build along with axon

  • @Exilum
    @Exilum Год назад +2

    I do think it's very cool, but on the other hand it only really matters when you app is already at a big scale. I'm happy with my nextjs docker container spun in google cloud run.

  • @FzsHotDogInDonut
    @FzsHotDogInDonut Год назад +5

    I have only one problem with all of these solutions. They do not provide localized price for devs from Bangladesh or nearby countries. How am I supposed to pay 25$ a month when I made only 200$ for entire project.

  • @antonioss0
    @antonioss0 Год назад +1

    found your twitter first and thought it sucked pretty bad, then found your channel and you know what, i think it got me turned around

  • @amanrv
    @amanrv Год назад +37

    My take is that this couples an abstracted version of infra with your code. That might be acceptable in some scenarios but not most. In any case if your app is not used by hundreds of millions of users, you'll get far with a monolith, so most people don't need to solve this problem anyway.

    • @andyjones11
      @andyjones11 Год назад +6

      I don't think this goes against the monolith pattern. Its more about when you have long-running/compute heavy tasks that you want to run as part of your monolith - even small/hobby apps will need to handle these types of workloads. To solve that you often have to add some type of message-broker + software to process workloads, handle enqueuing of tasks as-well-as taking care of the results as they come back to your monolith. The blog post uses lambda + API Gateway + SQS consumer + processor as an example of one pattern used to solve this, but every language/runtime has their own popular solution to this problem too - they all involve extra overhead in terms of tooling and setup.

    • @hidekxyz
      @hidekxyz Год назад +1

      Elixir/Erlang indeed is much different than any language in the sense it offers the tools to manage infra in your code (you can literally create queues, key/value memory storages etc)
      However often you don't need to worry about them, if you want, you can just run all your code using simple primitives of the language and literally create a monolith (And with good DX), but in the case you need scale you have all the tools that the language offers to you (which is why Elixir is so good for scaling apps)
      Also, application code and infra are not necessarily separate things, often we need to scale one part of the app due to business requirements, Elixir offers a easy way to that using code

  • @jackb94
    @jackb94 Год назад +3

    Straight fire 🔥 theo

  • @aleattorium
    @aleattorium Год назад +2

    Everyone considering this has to remember one point: this is beta / 1.0.
    Let's keep watching this space, but it really is interesting.

  • @jackfrosch
    @jackfrosch Год назад

    If the Lambda 15-minute timeout is too limiting for a use case, consider using Fargate as a scale-to-zero, serverless option for longer running tasks. It's billed for a minimum one minute and per-second granularity versus Lambda's millisecond billing, so you may not want to use it for

  • @stefankyriacou7151
    @stefankyriacou7151 Год назад

    The best solution i've seen as a complement to serverless functions that simplifies infrastructure is temporal.

  • @SoreBrain
    @SoreBrain Год назад +13

    Dark mode please

  • @omarmihilmy
    @omarmihilmy Год назад

    You can use an ECS Task for the chunky tasks

  • @plexq
    @plexq Год назад +1

    Seems to have a bit of similarity to how Apache Spark was conceived, but for javascript... I think that part is actually really interesting... I've done a lot of stuff with spark, and having good bindings for something like that but with the Javascript runtime would be interesting. Not sure those CPU bound use cases are a really good fit for the JS runtime though?

    • @xyzzyb
      @xyzzyb Год назад

      Flame isn’t for JavaScript. Its scaling function calls on the Elixir backend.

  • @bravethomasyt
    @bravethomasyt Год назад +1

    I don't think you'd use this for an API, you'd use this for when you need to process something and the server load for it is spiky or unpredictable. But honestly, it's great.

  • @Benni1000games
    @Benni1000games Год назад +14

    So you integrate this magic and then 5 years down the line when they decide to hike prices or change the api you have major problems. Yeah idk I think I will just spin up a new docker container on any provider of my choice instead if I need more processing power and invest a bit more engineering effort upfront

  • @teebu
    @teebu Год назад +2

    i wish he said something about azure durable functions.

  • @user-pw5do6tu7i
    @user-pw5do6tu7i Год назад

    Flame runner.. mmmmMk we will see. Sounds funky. Hope we don't make donkeys of ourselves

  • @sarjannarwan6896
    @sarjannarwan6896 Год назад

    Windmill is another interesting new tool you should check out.

  • @u007james
    @u007james Год назад +1

    how about using kafka as a queue system with upstash?

  • @harambeexpress
    @harambeexpress 4 месяца назад

    I've been looking at elixir the last week and funnily FLAME is kinda one of the least impressive things. I'm not saying it's bad - it's great - but putting it into perspective people have been using Celery with Python for years.
    I'd argue that FLAME is better than Celery in a few ways (transparency of file handles/streams for one), but the ease and core value proposition is quite similar.
    The big thing here is escaping AWS Lambda brain.

  • @DanielF847
    @DanielF847 Год назад +6

    Reminds me quite a bit of the akka actor pattern 😅 everything old is new again

    • @jcamenisch
      @jcamenisch Год назад +6

      Akka is just a "poor man's Erlang." That is, it's an adaptation of Erlang's actor model for Java. Elixir is built on top of BEAM itself (the Erlang runtime), so the actor pattern is built into the core of the language.

  • @elodens4
    @elodens4 Год назад

    if its creating a copy of the app to run the generate_thumbnail function, why couldnt they just auto scale and load balance the original app to begin with? Seems like cart before horse.

  • @NikolaHristov
    @NikolaHristov Год назад

    Yes! Flavorful apps!

  • @winchesterdev
    @winchesterdev Год назад +1

    FINE... i'll like and subscribe 😇

  • @jacoblockwood4034
    @jacoblockwood4034 Год назад

    FLAME seems pretty cool, I'm excited to look at it a bit more

  • @boenrobot
    @boenrobot Год назад

    What's the difference between FLAME and just... forking a process?

  • @atulkumar_zip
    @atulkumar_zip Год назад

    Im having problem in t3-stsck im using app router version yesterday it work fine but now it giving : Error querying the database: FATAL: remaining connection slots are reserved for non-replication superuser connections
    But i set max connections to 300 what i do?

    • @radiozradioz2419
      @radiozradioz2419 Год назад

      You probably have a leak for your DB connections _somewhere_. Look for places where you're retrieving connections from the pool and then not releasing them.

    • @atulkumar_zip
      @atulkumar_zip Год назад

      @@radiozradioz2419 this problem in my prod database in local database it work fine

  • @goporororo7404
    @goporororo7404 Год назад +1

    Hi

  • @hobbit125
    @hobbit125 Год назад +1

    js community: "we're not going to do dumb stuff anymore."
    ...
    js community: **does more dumb stuff**

  • @wojciechorzechowski2211
    @wojciechorzechowski2211 9 месяцев назад

    Elixir is the way!

  • @gonzalooviedo5435
    @gonzalooviedo5435 Год назад

    Say hi from Chile,

  • @nightshade427
    @nightshade427 Год назад +4

    Im confused, so in the javascript general flow, it says, extract the elastic function into its own file, and provided the arguments are json serializable, it will work. But, how is that different than extracting the functions and making a microservice?

    • @Exilum
      @Exilum Год назад +1

      It's talking about potential work that needs to be done and one idea for a solution to do an implementation in javascript land, but the library only exists in elixir as of now.

    • @nightshade427
      @nightshade427 Год назад +1

      But the implementation they are describing in javascript sounds the same architecturally as a microservice, not sure what flame would buy over microservice in JavaScript in that case.
      For elixr it makes sense because it can have multiple instances of the app running and remotely run individual methods within the running application.

    • @Exilum
      @Exilum Год назад +1

      @@nightshade427 Yeah pretty sure the javascript version just wouldn't have the same benefits as the elixir version, unless it is compiled.

  • @o__sama
    @o__sama Год назад

    What happened to just using a single server? I meant servers now can have terbytes of RAM, and hundreds of cores. That's not enough for your apps ? are you google? using serverless or FLAME or whatever scale solution just adds overhead making your server inneficient resulting in the need for more servers & scale, it is a self fullfilling prophecry. Maybe stop using javascript on the server & that will solve all your scaling issues.

  • @yjawhar
    @yjawhar 6 месяцев назад

    Doesn't Julia do that?

  • @hughmungusbungusfungus4618
    @hughmungusbungusfungus4618 Год назад +2

    I'll wait until they have something in Python/Go

    • @iamtheV0RTEX
      @iamtheV0RTEX Год назад +3

      Pretty much will never happen, unless Go creates some mechanism to have strict, zero-shared-state, immutable version of a goroutine. Erlang/Elixir are functional languages that have no mutable state, full stop, so message-passing concurrency across machines is just a higher-latency version of same-machine concurrency; you never have to worry about mutexes or anything. There might be a way to implement this in Rust, but it wouldn't be a one-line code change like FLAME here.

  • @radiozradioz2419
    @radiozradioz2419 Год назад +4

    I'd bet money that this'll be dead in 5 years. Stick with traditional infrastructure.

  • @asimpleguy2730
    @asimpleguy2730 Год назад

    In the future we will look at the serverless obsession in the same way we know look at the kubernetees / microservices obsession. A great solution for someone's problem, that got pushed to everyone.