did i just finish my reverse proxy?????

แชร์
ฝัง
  • เผยแพร่เมื่อ 26 ม.ค. 2025

ความคิดเห็น • 104

  • @trueberryless
    @trueberryless 3 หลายเดือนก่อน +236

    Every programmer's last words: "It's not far from being done"

    • @ardoren5442
      @ardoren5442 3 หลายเดือนก่อน +11

      it's prety much done locally, just have to push an MR real quick, don't worry about it

    • @elcapitan6126
      @elcapitan6126 3 หลายเดือนก่อน +7

      tombstone reads: "he was so close"

    • @rzyr
      @rzyr 3 หลายเดือนก่อน +13

      First 90% is usually way easier than the last 90%

    • @XDarkGreyX
      @XDarkGreyX 3 หลายเดือนก่อน +2

      It is never done, but we are

    • @enderdas
      @enderdas 3 หลายเดือนก่อน +2

      So close, yet so far away

  • @regiondeltas
    @regiondeltas 3 หลายเดือนก่อน +89

    Interesting project - i do a lot of enterprise reverse proxy work and even just configuring them can be extremely complex at scale. So many crazy edge cases, and complex requirements especially around persistence, monitoring, ssl, rewriting etc

  • @sweep-
    @sweep- 3 หลายเดือนก่อน +73

    The recap!!! This is awesome. Do more stream/project recaps please.

  • @MrHaggyy
    @MrHaggyy 3 หลายเดือนก่อน +20

    ^^ it's always fun how simple, efficent and beautiful such code is, as long as you only care about good actors. Once you have to take care about bad actors, especially nasty once, it gets so ugly and convoluted.

  • @thatmg
    @thatmg 3 หลายเดือนก่อน +61

    TCP Tinder

    • @shampoable
      @shampoable 3 หลายเดือนก่อน

      ratio there would be lucky to reach 1:9

  • @danielmiller8223
    @danielmiller8223 3 หลายเดือนก่อน +6

    Just started following. You are so entertaining; I appreciate your excitement.

  • @E8A590
    @E8A590 3 หลายเดือนก่อน +5

    Good job man. Keep it up and I hope you will have fun while doing it.

  • @NostraDavid2
    @NostraDavid2 3 หลายเดือนก่อน +4

    4:41 Structured Logging shown, let's go!

  • @purdysanchez
    @purdysanchez 3 หลายเดือนก่อน +24

    Obviously if you're just using one matchmaking server it creates a single point of failure for all game servers in the event of a DDoS. But if that was really a concern you would use or create a sophisticated edge network that tries to prevent that. But then you're basically reinventing cloudflare (a way more complicated thing) to defend your game servers.

    • @ThePrimeTimeagen
      @ThePrimeTimeagen  3 หลายเดือนก่อน +22

      That's the fun part!!

    • @dandogamer
      @dandogamer 3 หลายเดือนก่อน +5

      ​@@ThePrimeTimeagenplease re-create cloudflare without the trust and safety team 😂

  • @alejandroalzatesanchez
    @alejandroalzatesanchez 3 หลายเดือนก่อน

    It's cool seeing you geek out on your project, keep it up.

  • @WebDevCody
    @WebDevCody 3 หลายเดือนก่อน +4

    my man, sip some herbal tea with honey

  • @auslacroix
    @auslacroix 3 หลายเดือนก่อน

    More of this! So great! I love how you explain things.

  •  3 หลายเดือนก่อน +1

    The title makes me think of Betteridge's law of headlines

  • @hexxone
    @hexxone 3 หลายเดือนก่อน +4

    You should check out the Star Citizen Server meshing Tech. I think their approach is really cool, but probably Has to be deeply integrated in the game engine. So probably not manageable in reasonable time

    • @thekwoka4707
      @thekwoka4707 3 หลายเดือนก่อน

      And that it basically just the P2P meshing tech used in Destiny over 10 years ago.

  • @lordkazoo4405
    @lordkazoo4405 3 หลายเดือนก่อน +5

    Prime you are coding very Tiger style. I’m down with putting asserts throughout my code, but writing a simulator seems like a bit much to just pick up. How long did it take you to really get in to/master tiger style?

  • @spacetime3
    @spacetime3 3 หลายเดือนก่อน

    Super Entertaining project loves the comentary

  • @gungun974
    @gungun974 3 หลายเดือนก่อน +2

    Your reverse proxy you made make me think of NAT + Firewall with the fact you need to filter than translate the ip than respond to the sockets.
    Or maybe NAT were always reverse proxy ?

  • @adiljamshad215
    @adiljamshad215 3 หลายเดือนก่อน

    The amount of nerd talk in this video is amazing. I want to create such a thing myself too 😢

  • @acrosstheocean25
    @acrosstheocean25 3 หลายเดือนก่อน

    Awesome video! Please make more of these quick overviews that show some actual code

  • @msl6384
    @msl6384 3 หลายเดือนก่อน

    eBPF stuff would be really cool to watch, I've never used it myself though

  • @jasontang6725
    @jasontang6725 3 หลายเดือนก่อน +1

    Simulating client behavior is great. Will you also simulate sever processes dying and/or misbehaving?

    • @mattymerr701
      @mattymerr701 3 หลายเดือนก่อน +1

      Like how SQLite has a really in-depth testing suite that tests for various hardware failures too

  • @johnblomberg389
    @johnblomberg389 3 หลายเดือนก่อน +1

    Now I'm worried about authentication 😬

  • @kossboss
    @kossboss 3 หลายเดือนก่อน

    Pretty boxes my friend. Very well presented

  • @SpookieWhisper
    @SpookieWhisper 3 หลายเดือนก่อน

    “Lowest level” 👷‍♂️ we can go lower

  • @pif5023
    @pif5023 3 หลายเดือนก่อน

    Loved this!

  • @wasdasdasdcasdc
    @wasdasdasdcasdc 3 หลายเดือนก่อน +1

    whats the text font in your neovim called

    • @yt.mhasan
      @yt.mhasan 3 หลายเดือนก่อน

      I want to know too. Is that JetBrains Mono?

  • @joaofleumatico
    @joaofleumatico 3 หลายเดือนก่อน

    i have not keeping up with prime's videos recently, did he mentioned why he opted to develop this with go instead of his beloved rust?

    • @TurtleKwitty
      @TurtleKwitty 3 หลายเดือนก่อน

      He's been off the rust train for almost a year at this point, it's the year of learning go instead

  • @Brymcon
    @Brymcon 3 หลายเดือนก่อน

    This is amazing content.

  • @codemaluco
    @codemaluco 3 หลายเดือนก่อน

    dang, u are looking good!

  • @grillo_delmal
    @grillo_delmal 3 หลายเดือนก่อน

    ... will this able to handle reconnecting players that disconnected mid game?

  • @robmorgan1214
    @robmorgan1214 3 หลายเดือนก่อน

    You wrote a goodun... I'm working on something similar but in c++... with strongly typed (thingy) such that the compiler's proof checker is account for non business logic tests... I've semi rustified my code ... type safety not pretend memory safety (we're not animals here if you can point to it you can own it as far as I'm concerned).

  • @jameswilcock8
    @jameswilcock8 3 หลายเดือนก่อน

    Did i just make the reverse proxy of the summer?

  • @Kennstduwayne1001
    @Kennstduwayne1001 3 หลายเดือนก่อน

    Please more recaps :)

  • @embiem_
    @embiem_ 3 หลายเดือนก่อน

    So is a matchmaking server essentially a reverse proxy with additional logic?

  • @DavidFregoli
    @DavidFregoli 3 หลายเดือนก่อน

    your throat is killing me

  • @jbl271
    @jbl271 3 หลายเดือนก่อน

    I don’t know, did you?

  • @smc4229
    @smc4229 3 หลายเดือนก่อน

    Next step, direct server return ?

  • @JeremySeanH
    @JeremySeanH 3 หลายเดือนก่อน +8

    Loves go error handling. Doesn't handle errors

    • @yramagicman675
      @yramagicman675 3 หลายเดือนก่อน +5

      It does handle errors, just not how we're used to errors being handled. Errors as values, which is the paradigm go falls into, is often more robust than try/catch because you know what can and cannot error based on the return type. It's still up to you to do stuff with those errors, but the compiler makes sure you've at least thought about it. Compared to JavaScript where half the functions in the browser can throw, and half the functions in Node can throw, but you don't know until you crash what can error, go error handling is extremely robust. (I'm not trying to be precise. I know it's not half, but I don't know if it's more than half or less than half of JS that can throw.)

    • @dolorsitametblue
      @dolorsitametblue 3 หลายเดือนก่อน

      @@yramagicman675 compiler makes sure you've at least thought about it.
      wait until "if err != nil{ return err }" becomes muscle memory and now you not thinking about errors again. Now the only benefit that it's easier to spot where your system can fail.
      But I prefer the Nim's way of doing it. In Nim you have exceptions + effect system: you can annotate critical parts of your system with `raises: []` pragma and now you are required to handle all exceptions that could be thrown or it won't compile.
      It gives agency to the developer, while offloading most work to compiler and also not polluting your code with meaningless noise.

    • @yramagicman675
      @yramagicman675 3 หลายเดือนก่อน

      @@dolorsitametblue that's a great way to do it. I'm sure veteran go devs have a hot key in their editor so 1 or 2 keystrokes expand to the if err == nil block. That's what I would do if I worked with go every day

    • @acommoncommenter9364
      @acommoncommenter9364 3 หลายเดือนก่อน

      ​​@@yramagicman675It's my first time hearing about Go error handling so forgive my ignorance. Then go error handling is just java error handling but with return values instead of exceptions is it?

    • @yramagicman675
      @yramagicman675 3 หลายเดือนก่อน

      @@acommoncommenter9364 I've spent probably 6 hours working in Java in the worst possible code. I can't verify this theory. Maybe someone else can corroborate you theory.

  • @lildarker4044
    @lildarker4044 3 หลายเดือนก่อน

    noice! bravo articulating before you lose your ma'bles!
    i have a question... how long can a 'connection' persist?
    i have kinda similar solution with reservation for 3000 individual conns. its' footprint is tiny(RAM and CPU) with multiple auth layers.
    notably one 'app' runtime has lasted 2,888 days, others 400+ etc. each app is written in about 80% python and 20% native(OS).
    for your consideration; my solution also employs certs, and i have found when they update(periodically as they do, for me 90 days i think) i lose context
    i maybe in a position to address this 'issue' at some point being busy the now, i am thinking of re-contextualizing certs in the app(maintaining uptime) or more simpler just restart(which may bruise my uptime ego)

    • @mattymerr701
      @mattymerr701 3 หลายเดือนก่อน

      Up time should be measured in time between you needing to take action, not how long the program itself has been running.
      If your app goes down for half a second and restarts straight back up with no intervention, is it really down?

    • @lildarker4044
      @lildarker4044 3 หลายเดือนก่อน

      @@mattymerr701 exactly, its been years, literally years since i had to take action on these deployments.

  • @rymcymcym8521
    @rymcymcym8521 3 หลายเดือนก่อน

    thanks for the source code

  • @kiratornator
    @kiratornator 3 หลายเดือนก่อน

    So reverse proxy is a multiplexer?

  • @irvintorres4939
    @irvintorres4939 3 หลายเดือนก่อน +1

    I liked it with my 10 google accounts

  • @zacharysnyder3905
    @zacharysnyder3905 2 หลายเดือนก่อน

    What programming language is he using?

    • @snaileny
      @snaileny หลายเดือนก่อน

      Go

  • @david23627
    @david23627 3 หลายเดือนก่อน +1

    bump

  • @Shenepoy
    @Shenepoy 3 หลายเดือนก่อน

    this is not reverse proxy this an Orchestrator

    • @acommoncommenter9364
      @acommoncommenter9364 3 หลายเดือนก่อน

      No, the middleman still acts like the client against the server. In other words, server isn't aware the connection is with a middleman, it acts as if its the client. That makes it a reverse proxy. But it sounds weird calling it that because reverse proxies are just mostly used as institutional packet interceptors.

  • @FunkyELF
    @FunkyELF 3 หลายเดือนก่อน +1

    Why be a persistent man in the middle? Once everything is good to go why not just tell the client how to talk to the server directly?

  • @kamertonaudiophileplayer847
    @kamertonaudiophileplayer847 3 หลายเดือนก่อน

    Where is SSL?

  • @sammo7877
    @sammo7877 3 หลายเดือนก่อน +1

    Nginx streams 0.1 🎉

  • @anwiseru9064
    @anwiseru9064 3 หลายเดือนก่อน

    i like this

  • @ryanrobbins3846
    @ryanrobbins3846 3 หลายเดือนก่อน

    🔥

  • @philadams9254
    @philadams9254 3 หลายเดือนก่อน

    Spoiler: no

  • @Tony-dp1rl
    @Tony-dp1rl 3 หลายเดือนก่อน +1

    if err != nil if err != nil if err != nil if err != nil ... I now know Golang!!! :)

  • @lefeyyy
    @lefeyyy 3 หลายเดือนก่อน

    abraço do Brasil : )

  • @danser_theplayer01
    @danser_theplayer01 3 หลายเดือนก่อน +2

    I don't get it. From what I've learned a reverse proxy is just a proxy but for the servers, and it usually exists to distribute loads in a sophisticated way and cache data and prevent attacks. So supposedly if you know how to write a proxy you know exactly how to write a reverse proxy as well. Not to be confused with a software "proxy" equivalents that just balance a single server, maybe spin up some worker threads.

    • @youtubeuser98
      @youtubeuser98 3 หลายเดือนก่อน

      warded

    • @viraptorify
      @viraptorify 3 หลายเดือนก่อน

      Yeah, that's about right. Proxy is a proxy is a proxy. The reverse part just says where it lives / who owns it.

    • @MrHaggyy
      @MrHaggyy 3 หลายเดือนก่อน

      Yes and no. The forward proxy usually only maps one respond to one requests.I
      A reverse proxy can become a more complex assembler, when you do scheduling tasks to achieve load balancing, or you litterally need to assemble the final response from multiple sources.
      But simpler is usually better.

    • @viraptorify
      @viraptorify 3 หลายเดือนก่อน

      ​@@MrHaggyywhen you're making multiple requests based on the one from the client, that's just a small service not a proxy.

    • @viraptorify
      @viraptorify 3 หลายเดือนก่อน

      ​@@MrHaggyywhen you're making multiple requests based on the one from the client, that's just a small service not a proxy.

  • @f.reaky_carlos
    @f.reaky_carlos 3 หลายเดือนก่อน

    quickie😁

  • @ettyxcbyrcburcbtxcfhcdtyurt
    @ettyxcbyrcburcbtxcfhcdtyurt 3 หลายเดือนก่อน

    mid

  • @ettyxcbyrcburcbtxcfhcdtyurt
    @ettyxcbyrcburcbtxcfhcdtyurt 3 หลายเดือนก่อน

    still mid

  • @abdullahshoaib4825
    @abdullahshoaib4825 3 หลายเดือนก่อน +1

    lessgo

  • @marcola80
    @marcola80 3 หลายเดือนก่อน +5

    1 minute and just 39 views? bro really fell off.

    • @Sommyie
      @Sommyie 3 หลายเดือนก่อน

      🤣🤣🤣 Ikr?

    • @saymehname
      @saymehname 3 หลายเดือนก่อน +3

      Le zoomer comment

    • @epicmetod
      @epicmetod 3 หลายเดือนก่อน

      @@saymehname no shit sherlock

    • @colinstu
      @colinstu 3 หลายเดือนก่อน +1

      @@saymehname seriously imagine thinking saying that is funny

  • @hyperprotagonist
    @hyperprotagonist 3 หลายเดือนก่อน

    First 🎉