
Ask HN: How to start developing distributed software? - nonotmeplease
I want to start building distributed applications like chats, forums, etc. What is the easiest way to start? What papers&#x2F;software&#x2F;blog posts, etc. to read?
======
davismwfl
At what level are you wanting to develop?

I ask as there are significant differences between the developer writing a
"basic" distributed application that utilizes others work to handle the
complexity of a distributed system and the guy/gal writing her own leader
election (or raft type) algorithms etc. Not that either is better then
another, but they are different levels which require different skills and/or
mindsets.

Either way, I suggest you look at leader election, raft, time syncing etc so
you have a reasonable understanding regardless of what level you decide to
write at. Also, look at other applications that are distributed, read up on
eventual consistency and just design systems on paper to identify issues. Take
a look at systems like Instagram, Facebook, Twitter, redis, mongodb etc that
publish quite a bit about their architectures and where you can find good and
bad about their designs (e.g. redis/mongo).

I will say one thing, if you don't already know it, time is critical in a
distributed system. I do not think it can be overstated how important the time
value is, as almost every action is usually coordinated or decided in relation
to time.

edit (fixed some text)

~~~
nonotmeplease
Thank you. I started reading some stuff (see some of my submissions). I also
started learning elixir. Really fun language.

------
nostrademons
If you want to e-mail me (my address is in my profile, obfuscated), I might be
able to help (been doing networked multi-user applications since 2000,
including 5.5 years at Google). This is a pretty complicated question, and
depends a bunch on what you're trying to accomplish and what you already know.

~~~
nonotmeplease
I sent you an email yesterday, did you receive it? :)

