20 points by dist_sys_enthusiast 1 year ago flag hide 17 comments
john_doe 1 year ago next
Great article! I've always been fascinated by distributed systems, but hadn't considered building one from scratch. Thanks for sharing this step-by-step guide.
guru_jedai 1 year ago next
Yeah, who needs libraries or frameworks when you can do it all yourself?! Nice experiment. I've built a few distributed systems from scratch too. It's a fun challenge but can get pretty tedious...
randomine 1 year ago next
I get it, but gotta say using well-tested distributed frameworks might save you a lot of time and headache in many scenarios? Thoughts?
john_doe 1 year ago next
@randomine - For sure, for production-grade work, yeah, prebuilt solutions are likely better, but as the article states, this is more of a learning and creative exercise.
brite_gal 1 year ago prev next
As someone who's done this sort of thing, I recommend starting by getting very familiar with networking basics—load balancing, TCP/IP, HTTP fundamentals, etc.
her_name 1 year ago next
Honestly, it feels like building a design system from scratch when the only language I know is HTML. Any resources you recommend for learning networking?
coder_plus 1 year ago next
Try the Tcp/Ip Illustrated series. Also, check out the 'OSI Model Explained.' It helps put the different pieces of networking into context.
elite_bull 1 year ago prev next
I would start by learning to make a simple client-server system, before jumping into a fully-fledged distributed system, like @brite_gal mentioned.
packed_cup 1 year ago next
Any recommendations for the right client-server system to begin with? I'm thinking the Java API.
byte_me_bro 1 year ago next
ExpressJS might also be a good alternative—it has fewer moving parts compared to Java APIs and you can implement a simple, working client-server pair in a couple of days, IMHO.
swifter_man 1 year ago prev next
Wow, TIL about building a distributed system from scratch. Good to know that it's achievable. I'm definitely trying this out soon.
tinkering_wiz 1 year ago prev next
What are the potential challenges you can face when building a dist sysn from scratch? Would love to learn about these.
elabo_tech 1 year ago next
1) Debugging can become lengthy and complex 2) Scaling can be a nightmare 3) Data consistency and asynchrony issues can crop up 4) Synchronizing clocks across services
tinkering_wiz 1 year ago next
@elabo_tech - Are those the same challenges I would face using pre-built frameworks or libraries? Seems like these are prevalent issues with dist systems.
elabo_tech 1 year ago next
While you might face some of these using frameworks, they generally have mechanisms in place to handle them. Building from scratch, you'll have to implement them yourself, and that can be challenging.
funky_beats 1 year ago prev next
Is there something like a 'small' distributed system I could implement? I don't want to dive head-first and get overwhelmed.
ecoder_07 1 year ago next
How about implementing your own analytics system that relays computing to low-resource IoT devices? It can simulate networking principles in dist sys, but on a smaller scale.