When I was working on a game that served a million users, that load balancer split requests into 8 gateways, and each gateway was just a proxy websocket server. This gateway further split websocket requests into 8 MAIN (Main menu), 8 MATCH (matchmaking) & 8 COMBAT (Gameplay) servers. All related servers (E.g: MAIN - Gateway, Match - MAIN, and Combat - Match) were connected to each other by a Center Server coordinating and telling all servers which one they need to connect to. It was complicated and yet so simple and beautiful In my context, your Matchmaking was my Load balancer, your reverse proxy was my gateways and your SQLite was all the other nodes that hide behind my gateways. Very fun project
Showing what you have been implementing is really good. They are raw but I feel the concepts are really close to value as the videos in the main channel, however not so detailed and with less editing. The pretty logging is a great ideia for this format (maybe talk more about the implementation, difficulties etc.). I'm also really curious about the connection simulation that you built.
Really cool video man! I’m learning about tcp-ip in my network programming class right now. I’m still a student but I feel that I have your same mindset, I can’t learn by just drawing boxes and arrows, I need to actually build things, otherwise it doesn’t click. And building something super low level, I feel is a great way to understand it. I’ve been learning game engines in my spare time to apply my programming knowledge, and I find that actually doing the stuff, has already made me such a better programmer.
Im senior, being made redundant from company closure. I have project ideas that im well knowledged in and excited about. I feel weird atm. Trying to revise for interviews with all these different languages has really burned me out. I just load up steam now.
Jup a reverse proxy often does only distribute the connections to backend servers. Sometimes there are a few additional things going on like SSL encryption or stepping up the html version from 1.1 to Quick.
Are you using the proxy server for all communication or just the initiate connection to the correct game server? Otherwise the proxy might become a bottleneck? Also I think you could have used io.Pipe no?
07:40 And sometimes it is actually better to just roll your own implementation instead of relying on other people software! Yeah, using a reverse proxy that is already done would be easier, but what if the reverse proxy is causing problems? At least with your own implementation you actually have the implementation "in your mind" and you know how you implemented it so you do have a good idea on how to fix it, while with a third party solution you need to figure the problem yourself and hope that there's documentation talking about the issue you are having.
This is true on personal projects but I wouldn't want to inherit someone's hand made implementation most of the time, compared to using an implementation that is documented and maintained, with security patches and all the jazz.
K, dude, very nice, and cool, but it feels a bit like cargo cult. It's like those brogrammers, who think that memorizing hotkeys for a text editor from the 70s makes them look like Bill Joy, or that insane lady wearing turtleneck imitated Steve Jobs. You start with the end, but the first rule of distributed systems is don't do distributed systems. And if you want to understand, don't start with high level programming patterns and languages. I'm no Dijkstra, but he was right about BASIC. What is reverse proxy? Imagine you're a reverse proxy. Ding dong, kernel calling, you've got bytes in your memory array. Oh, it's a packet, Let's sanitize, verify, it's asking for XYZ, in our table XYZ corresponds to IP:port, let's prefix it, and it goes to that other memory array, then we do this instruction to let kernel know it's going out. That's.. interrupt handlers table. Or vtable. Or facade. Or a TSR virus in DOS. So what's the simplest "reverse proxy" you can build? A buffer in memory? What can you do with it to keep it fast? Lock-free? A ring buffer? Userland threads? Boom! You're into coroutines territory. How much can you push through it? Can you do zero copy? Oh, so THAT'S what ASICs are about. By jumping straight to veeeery high level stuff, you don't learn anything except parameter order in some other guy's method call. But build an in-memory implementation, push it to the limit, just ONCE, and you've seen it all, it's all the same under the hood - (de)multiplexers of memory buffers with a redirection table and hooks.
Make video about pretty logging!
make video about pretty logging!
Make video about pretty logging internet moustache programming man.
✨Make video about pretty logging! ✨
Building things from scratch/"Reinventing the wheel" is the key to heightened understanding. Plus, it's just fun to build stuff you can be proud of.
When I was working on a game that served a million users, that load balancer split requests into 8 gateways, and each gateway was just a proxy websocket server. This gateway further split websocket requests into 8 MAIN (Main menu), 8 MATCH (matchmaking) & 8 COMBAT (Gameplay) servers. All related servers (E.g: MAIN - Gateway, Match - MAIN, and Combat - Match) were connected to each other by a Center Server coordinating and telling all servers which one they need to connect to.
It was complicated and yet so simple and beautiful
In my context, your Matchmaking was my Load balancer, your reverse proxy was my gateways and your SQLite was all the other nodes that hide behind my gateways. Very fun project
The people want pretty logging!
If the pretty logging is not structured logging, I don't want it! Structured logging 4 lyfe!
It looks like it's structured logging - let's go! Go make that video!
Showing what you have been implementing is really good. They are raw but I feel the concepts are really close to value as the videos in the main channel, however not so detailed and with less editing. The pretty logging is a great ideia for this format (maybe talk more about the implementation, difficulties etc.). I'm also really curious about the connection simulation that you built.
Really cool video man! I’m learning about tcp-ip in my network programming class right now. I’m still a student but I feel that I have your same mindset, I can’t learn by just drawing boxes and arrows, I need to actually build things, otherwise it doesn’t click. And building something super low level, I feel is a great way to understand it. I’ve been learning game engines in my spare time to apply my programming knowledge, and I find that actually doing the stuff, has already made me such a better programmer.
This is so cool, these things always seem daunting, its nice to know more about it than the application
The first and only reverse proxy I've built was for routing webhooks between test servers. It was a fun project building it all.
im so early there is not even a thumbnail
Competence breeds confidence.
Commenting for video about pretty logging to get made
The term Match Making could be a confusing name. In gaming it's already used for the process of matching opponents on their ELO.
MAKE VIDEO ABOUT PRETTY LOGGING
totally random idea here, but a video on logging in a pretty way could be cool
Make a video about pretty logging 😀
make videou about pretty logging!
Im senior, being made redundant from company closure.
I have project ideas that im well knowledged in and excited about.
I feel weird atm. Trying to revise for interviews with all these different languages has really burned me out. I just load up steam now.
PRETTY LOGGING PRETTY PLEASE
Funny words magic man😂😂No idea what you're saying, but it looks cool.
00:02 :w at random places is the way
It is inspiring dude. Thanks!
This is the content I'm here for
Jup a reverse proxy often does only distribute the connections to backend servers.
Sometimes there are a few additional things going on like SSL encryption or stepping up the html version from 1.1 to Quick.
This looks similar to Valve's SDR (Steam Datagram Relay), looks cool
0:00 ":w" 😂😂😂 Too much vim. 😝
thank you Prime.
Also, mAkE vIdEo AbOuT pReTtY lOgGiNg.
Restart the proxy at 999,999 connections and call it a day.
DevOps engineer here.... Its duck tape!
It looks like the problem is converting a scientific float expression to int
My guess is sqllite doesn’t store an int or bigint and that’s the issue
Holy shhh..... imagine vim is a backdoor/malware/killswitch a 0day...for 15 years and its still open
So show me a squid server where you basically have obscene security except it's impossible with chrome. Back in the day 2004 ish
Make Video Logging Pretty!
Make a video about pretty logging! 🎥✨📝
I don't understand anything but i know it will be useful someday
make a video about pretty dang amazing deeznutz logging!
I think you should bust out the whiteboard more when explaining functions for us laymen’s
Exciting. Love it.
Where is my pretty logging
Are you using the proxy server for all communication or just the initiate connection to the correct game server? Otherwise the proxy might become a bottleneck?
Also I think you could have used io.Pipe no?
Blizzard uses the reverse proxy for all game data and yes, it leads to desync and disconnects. Small indie company
Make video about pretty logging! also great content
make video about beautiful and majestic logging
No! You do Client Side Load-Balancing for better latency in games instead of Reverse Proxy.
we can play a game in neovim? thats sweet
Okay please come up with a vim 1v1 battle game with matchmaking. Wow that would be so cool!
make video about pretty moustache logging man
no no no no go back to the old title
i wouldnt click this, i clicked the old one
How can I stop my LSP server from crashing in neovim all the time?
Make video about pretty loggin!
where is the source code
Make a video about pretty logging!
Make a video about pretty logging!!
I’m just stoked for this incredible vimbegood battle that’s about to pop off.
make a video about pretty logging! (please)
MAKE LOG
07:40 And sometimes it is actually better to just roll your own implementation instead of relying on other people software! Yeah, using a reverse proxy that is already done would be easier, but what if the reverse proxy is causing problems? At least with your own implementation you actually have the implementation "in your mind" and you know how you implemented it so you do have a good idea on how to fix it, while with a third party solution you need to figure the problem yourself and hope that there's documentation talking about the issue you are having.
This is true on personal projects but I wouldn't want to inherit someone's hand made implementation most of the time, compared to using an implementation that is documented and maintained, with security patches and all the jazz.
@@Varpie true
Please make video about pretty logging
Make video about pretty logging! 🥺🥺
It's this code opensource?
Make video about pretty logging!
make video about pretty logging!
Make a video about pretty logging
make a video about pretty logging?
Make video of petty logging
wow make video about pretty logging
make video about pretty loggin
Logging is easy in rust
Make a video about pretty logging!!
Pretty loooging..
make vid abt pretty loggin
Make video about pretty logger
Make video about pretty logging
Show of hands, who here has sent a `:w` message in slack or teams? 🙋♂️
wow that is simple. Make a video about pretty logging
I like your pretty face hair
Make a video about pretty logging
K, dude, very nice, and cool, but it feels a bit like cargo cult.
It's like those brogrammers, who think that memorizing hotkeys for a text editor from the 70s makes them look like Bill Joy, or that insane lady wearing turtleneck imitated Steve Jobs.
You start with the end, but the first rule of distributed systems is don't do distributed systems.
And if you want to understand, don't start with high level programming patterns and languages. I'm no Dijkstra, but he was right about BASIC.
What is reverse proxy? Imagine you're a reverse proxy. Ding dong, kernel calling, you've got bytes in your memory array. Oh, it's a packet, Let's sanitize, verify, it's asking for XYZ, in our table XYZ corresponds to IP:port, let's prefix it, and it goes to that other memory array, then we do this instruction to let kernel know it's going out.
That's.. interrupt handlers table. Or vtable. Or facade. Or a TSR virus in DOS.
So what's the simplest "reverse proxy" you can build? A buffer in memory? What can you do with it to keep it fast? Lock-free? A ring buffer? Userland threads? Boom! You're into coroutines territory. How much can you push through it? Can you do zero copy? Oh, so THAT'S what ASICs are about.
By jumping straight to veeeery high level stuff, you don't learn anything except parameter order in some other guy's method call.
But build an in-memory implementation, push it to the limit, just ONCE, and you've seen it all, it's all the same under the hood - (de)multiplexers of memory buffers with a redirection table and hooks.
make video about ugly logging
Make video about pretty logging
Make a pretty logging about video.
Make video about gimp
Make pretty video about pretty logging to make ugly viewers pretty happy pretty please.
TLDR MAKE VIDEO ABOUT PRETTY LOGGING
Pretty logging plz
don't make video about pretty logging!
Guy used gpt to learn how to code a reverse proxy and then teaches it to noobs.
I am satisfied even theprimeagen type `:w` outside vim. It happens to me all the time.
btw make video about pretty logging
make video about pretty logging!
Make a video about pretty logging!
Make a video about pretty logging!!!!
Make video about pretty logging!
make video about pretty logging!
Make video about pretty logging!
make video about pretty logging
Make video about pretty logging
Make video about pretty logging!
make video about pretty logging!
Make a video about pretty logging!
Make video about pretty logging!
Make video about pretty logging