How DogeHouse will Scale to the Moon 🚀

Поділитися
Вставка
  • Опубліковано 25 лют 2021
  • This is the architecture for DogeHouse and how I plan to scale it to over 9,000 concurrent users.
    dogehouse.tv/
    github.com/benawad/dogehouse
    #benawad #dogehouse ​

    ----
    Follow me online: voidpet.com/benawad
    #benawad
  • Наука та технологія

КОМЕНТАРІ • 347

  • @keshav9463
    @keshav9463 3 роки тому +726

    When ben calls 911 , he asks what thier emergency is

  • @malipetek
    @malipetek 3 роки тому +487

    Looks like you became a backend dev accidentally.

  • @geeshta
    @geeshta 3 роки тому +241

    "The answer to all of these questions is 'YES'"
    So: "Why did you pick that?" "YES"
    "How does it even work?" "YES"

  • @jabezborja
    @jabezborja 3 роки тому +120

    Thailanders already conquered DogeHouse LOL, I love 'em.

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

    Currently on the Senior Q&A channel and it is a blast. Thanks Ben

  • @MrChelotta
    @MrChelotta 3 роки тому +13

    Really liking the detailed realistic architecture explanation. Please make more videos about Elixir!

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

    Ben, you really made it with this very good backend architecture. wait for further news

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

    This is super interesting. Thanks for posting

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

    Thanks for sharing, Ben. So interesting to see the architecture and the way is was decided, supported with real stats numbers.

  • @Fill_30
    @Fill_30 3 роки тому +326

    £ = pound
    € = euro

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

      4:00

    • @leocarvalho8051
      @leocarvalho8051 3 роки тому +18

      I think he knows. Someone pointed that out in one of his live videos and ben googled the pound symbol and admited he was wrong. I guess he just does not care

    • @cogspace
      @cogspace 3 роки тому +16

      @@leocarvalho8051 He's probably doing it on purpose at this point to get that sweet sweet comment engagement... or because it's funny.

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

      $$$$$$$ is the best

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

      @@DemonThr1ftrrrr except for the strength of the currency

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

    You're just pumping out new stuff, really impressive

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

    Very very cool Ben, wow sounds like your having a lot of fun.

  • @zinjanthropus322
    @zinjanthropus322 3 роки тому +11

    Elixir is way more suited to scaling that audio delivery than nodejs. For one it's not single threaded and Erlang is already being used worldwide by telecoms to handle phone calls to and from millions of customers. It would save you more money and give you better performance if you would either remove nodejs entirely from the backend stack or relegate it to microservices.

    • @MB-rc8ie
      @MB-rc8ie 3 роки тому +5

      it would be best to remove javascript from the world entirely

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

      @@MB-rc8ie 🤣

  • @elomoosk5991
    @elomoosk5991 3 роки тому +223

    If this is the refined hypebeast stack, what's the raw hypebeast stack?

    • @italomarcos1231
      @italomarcos1231 3 роки тому +42

      React
      Typescript
      Node.js
      Postgres

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

      What's the heavy/sharp hypebeast stack?
      Cracking Dark Souls 3 weapon infusion jokes in comment section of a web dev focused channel is just 🤦, but I regret nothing.

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

      @@nekoill don't worry i get the reference

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

      @@mamenggaluh8897 awww^ω^

  • @Kevin-jc1fx
    @Kevin-jc1fx 3 роки тому +1

    Thanks for the comprehensive explanation of the architecture.

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

    Would be really nice if you added video calling! Especially with this whole pandemic thing I’ve been hearing about.

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

    Loving your content 🙌

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

    I also just started playing with elixir about 50 days ago and I really like your videos (only watched two so far 😅). They are helping me know about the super powers elixir can do so that I stay on my path.

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

    Thanks for this, extremely helpful. Still a lot to delve into.

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

    I feel like this will be really good for podcasts!

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

    Hey Ben, you can pipe streams across servers too... Mediasoup allows that, it'll help your users receive streams from any server. Not just where the producers are.

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

    Man you are awesome, I love how you code and build really creative stuff. Good Luck :D

  • @CodingNuggets
    @CodingNuggets 3 роки тому +48

    This doge stuff, even with this whole doge coin, or whatever it is, is interesting how it's catching wind right now. How a word or concept comes around and catches traction always astonishes me. It's like clubhouse coming out of nowhere.

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

      Clubhouse is just zoom but can't turn on video

    • @LinkEX
      @LinkEX 3 роки тому +8

      Clubhouse gives me the inverse vibes of all that doge stuff.
      Rather than being self-ironic, it comes off as self-important.

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

      I think what he means is that "clubhouse" as a word wasnt cared for much until the app came out, I agree it's interesting how certain brands stick more than others. Technically, doge is now a brand haha

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

      @@modernfounder7012 Exactly. Didn't matter until the app showed up. The one thing I do like about Clubhouse is how they do their invites. It's a genius strategy.

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

      People are still using clubhouse?

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

    For deciding what voice-server a room should be sent to, have you thought about using a Load balancer that just grabs from a pool of worker ips?

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

    Why not run the voice server in Elixir as well? Looks like there are some libraries to do it use NIFs.

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

    Any thoughts on using an event driven autoscaler like KEDA based on messages in your RabbitMQ? I think this will make it even more flexible and scalable, especially when combining the HA features that Kubernetes has to offer.

  • @fotiem.constant4948
    @fotiem.constant4948 3 роки тому +3

    Go... go goo.. Ben!🔥🔥🔥🔥

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

    Devs like u are building the bright future of the world ❤️ full support.

  • @benneighbour526
    @benneighbour526 3 роки тому +8

    Ben are you using GKE or Kubernetes to manage multiple instances?

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

    You had me at RabbitMQ Queue 😎

  • @senpai6464
    @senpai6464 3 роки тому +15

    I can listen you for a looooong time maaaan

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

    Hey, I am developing and operating a similar setup on kubernetes except that is also doing video for up to 1.000 participants at the moment. If you want to we can talk a bit about the problems I ran into when architecting and operating this setup :-) its really not that easy! We are using a Go, Node, Angular/Vue, gRPC, NATS, Redis and RabbitMQ Stack

  • @Eckster
    @Eckster 3 роки тому +18

    People who diss on Elixir need to experience the Ecto ORM, it's probably my favorite ORM I've ever used.

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

    Thats a really cool project

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

    So dope Ben!

  • @dan6erbond
    @dan6erbond 3 роки тому +11

    Ben Awad using web RTC looks like now everyone will.

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

      He should use twilio-video inlieu of mediasoup

  • @kettenbach
    @kettenbach 3 роки тому +95

    Thanks. Now I have Elixir FOMO which contributes to my Imposter Syndrome. 😢

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

      hahaha, I thought the same. like here we go again.

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

      Don’t worry, Elixir is a meme, remember R?

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

      @@Bakuragorn people said same about node.

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

      @@Bakuragorn R is still used heavily by data scientists, its popularity is only increasing.

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

      @@Bakuragorn yeah who cares about elixir lets all just move to Rust

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

    Your videos are really cool. It would be great if it had subtitles.

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

    Visual Paradigm 👌

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

    Nice cam "Vue", Ben 😁

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

    "I want giant rooms just massive, thousands of thousands of people listening..."
    Sure. Like Radio. I like it. Crazy but I like it. New sub!

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

    I am a little confused at the use of RabbitMQ for what's effectively RPC when fetching the voice server ip/password--wouldn't you be better served using something like gRPC instead? Having done RPC in RabbitMQ before I think it's safe to say that it's pretty jank, and IIRC their docs even say something along the lines of "this is a message queue, not an RPC client, but I guess if you're going to do it anyways here's how you'd do it"

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

    I know it just a small detail of elixir but when I was fiddling around doing x = 1 and then it allowed me to do 1 = x i knew i was looking at a super saiyan language. You have to really think out of the box to come up with that shit. It made so much sense instantly, all the pieces fitted right at that moment.

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

    Amazing project Ben

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

    Great stack! Elixir is a great choice!

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

    3:58 those aren't euro signs, they're pound signs. Did it cost £50 for the VPS and £75 for the bandwidth, or €50 for the VPS and €75 for the bandwidth?

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

    💯 Full-Stack developer

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

    It's the best architecture and also mediasoup is awesome. You can do Cascaded SFU!

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

    Great video ,One question. Why webrtc when peer to peer comm is not needed?

  • @DavidSmith-ef4eh
    @DavidSmith-ef4eh 3 роки тому +3

    pm2 had memory leaks last time I used it... but I guess on 32 GB RAM servers it doesn't matter too much.

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

    Can you make a video about how to choose right license for projects.

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

    hey you've struck gold with this video. i don't know why and i dont know how but this will get lots of views. thanks

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

    Hey Ben, will you use Kubernetes for scaling DogeHouse voice servers for large rooms?

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

    Is there any benefits of choosing Netlify to host your Reacty website versus Vercel?

  • @sanzhar.danybayev
    @sanzhar.danybayev 3 роки тому +1

    How do you utilize all 8 CPUs for single-threaded Node.JS? Making copies of the app?

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

    So a single room will be max 500 listeners, since they use up a voice server (max 500 per server?)? Or do you share room audio between voice servers?

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

    You know Ben has been typing for a good while when his finger is slightly curved upwards 3:19 xD
    Keep em coming Ben!

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

    I thought about building something similar but how do you handle traffic?
    I've got like 2tb outgoing traffic only on my hetzner cloud

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

    The mic select has a white background and white letters.
    Fix it.

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

    Yes! More Elixir videos please 🤩

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

    Yooo this is sick

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

    Ben is really the kinda nice guy with good manners,

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

    awesome titles bro

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

    I think if you want to implement webrtc in a big room, like many clients in a single room, you need a media server.

  • @39580xxx
    @39580xxx 3 роки тому +25

    Ben awad ur the greatest., its me at 1:53

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

      Hi max you are great

    • @39580xxx
      @39580xxx 3 роки тому

      @@shelby255 thanks

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

    Dude, thanks for the video. interesting. btw, your eyes are getting darker and darker, are you looking after your health?

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

    purple reignz. legendary status of colors.

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

    Why not just use a multicast broadcast service for each room ie like Radio?

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

    🔥

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

    What do you think about the agora library clubhouse uses?

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

    5:57 kousa lmao

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

    Guys, Discord shifted from Go -> Rust. They are still using Elixir at scale.

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

    ดีมากๆเลยครับ lov it

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

    What do you think about Go for this project?

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

    Ben: given your particular way of pronouncing it, a video about how you coded an Alexa client in Elixir would be tongue-twisting fun...

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

    Just curious, why did you choose nodejs for webrtc routing and not Elixir?

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

    yes, i'm try to invite some friends using it... cheers / Thailand

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

    When he was born the doctor said: it's a Zuckerberg.

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

    Elixir tutorial would be super kul

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

    Just wanted to know why you chose tailwind instead of chakra?
    PS beginer at both, heard you talk about enjoying chakra earlier. Just wanted to know the pros and cons.

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

      They got an actual design for doge house, which defeats the purpose of chakra since its a "pre-made" ui library which has very limited options for custom styles. I'd say it makes sense to use chakra if you just want to get a quick front end for a non-serious project, but if you want to make an unique, custom design for example, you'll need to use css (or tailwind-css since its nothing more than a utility for writing css) to implement that design in your components

  • @arishshah1142
    @arishshah1142 3 роки тому +54

    We need an Elixir tutorial Ben!

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

    When investors meet with ben he asks them questions to approve them as investors yeah yeah

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

    50 Gyros 😀🙌 Awesome‼️

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

    Where do you learn how to design this architecture?

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

    This stack is worth only with real time apps ?. Netflix backend is made with NodeJS, is worth learn Elixir ??

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

    Feel like this project would benefit with some docker + skaffold + kubernetes

  • @RameshKumar-mv3jd
    @RameshKumar-mv3jd 2 роки тому

    Everone: Why did you pick that? How does it even work?
    Ben: Yes

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

    Elixir tutorial please

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

    Pretty sure that wasn't wood you were knocking on. Or perhaps a wood coaster on a titanium table.

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

    ben doesn't call the emergency
    the emergency calls him

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

    great

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

    He said the pricing for both machines is 75 euros, It lookes like really good deal for both 8cpus and 32gb ram, where is this project hosted? Sorry for my ignorance, but i never used any cloud provider myself but the free netlify tier

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

    Lost it when you knocked on the table

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

    Might want to try Deno for voice server?

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

    Ben what was your elo on League when you played it?

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

    Had to reconnect to see name and avatar changes. Can you work on that?

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

    If anybody ask me who is your fav tech youtuber in an interview, Im gonna say Ben because i will have the words to reason.

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

    Elixir is tight

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

    Why not have it try to connect P2P and then fallback to the voice server on failure? I haven’t actually done anything with webRTC so I have no idea if this is a bad idea.

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

    "Knock no metal"