DEV Community

Discussion on: I am a YC alumnus & 3X VC-funded founder-CTO. AMA!

Collapse
 
chrisachard profile image
Chris Achard

As someone who doesn't know a lot about Distributed Systems - what are some basics that I should keep in mind while I'm developing? Are there things I can do to make things easier or harder to scale later? (or: when should I start worrying about that?) Thanks!

Collapse
 
mohanarpit profile image
Arpit Mohan

My biggest learning while dealing with Distributed Systems has been that everything fails (especially the network). Most of the products that I build now are not focused to prevent failure but instead to work inspite of failure. Some keywords to read up are Chaos Engineering and Crash First Development.

My second biggest learning ( & potentially unpopular opinion) is that if you can avoid a distributed system, avoid it. A monolith is hundred times easier to reason with and test against. :D

Collapse
 
chrisachard profile image
Chris Achard • Edited

Great points, thanks; Yeah - I think "everything fails" is one of the reasons I've really tried to avoid it so far :)

That, and nothing that I've built has enough traffic that can't just be solved by "increase the number of web processes" on a monolith app. Maybe if I build something popular enough, then I'll have to worry 🤣