by shane_burkhart on 12/17/16, 9:06 PM with 63 comments
by derefr on 12/18/16, 6:02 PM
On a one-machine scale, Twitter can be a single Postgres table, or a single ElasticSearch index. At the scale they actually are, it's really a whole lot more.
I'd really love a tutorial—or possibly a whole book—that instead took you through setting up the sort of distributed system that is required to make a Twitter clone run at a Twitter-like scale. Either through IaaS APIs, or on your own with something like OpenStack DevStack.
It could probably start where this tutorial ends—with a one-node system running a Twitter-backend-alike monolith. And then each chapter would increase the scale, introduce a problem the scale causes, and then walk you through adding in an additional component: a message queue; a fragment cache; app-level health checks; a search indexing cluster; distributed logging + request tracing; geographic sharding; multi-master DB replication—in order to solve that scaling problem.
There would also be scale-points that would require changes in the business logic: making IDs globally unique and sortable ala https://github.com/twitter/snowflake; deprecating but keeping around old APIs as new ones are added; "Ball of Mud" refactorings; isolated Enterprise clusters of the app; etc.
Bonus points if later chapters actually go back and rip out solutions that were introduced in earlier chapters—not because they were mistakes, but just because they were right for 10^3/s but not 10^6/s. And bonus bonus points if they assume an SLA that requires that such switchovers occur without downtime.
by soneca on 12/18/16, 1:30 AM
It really starts from the beginning as in "first you have to install the proper tools and prepare your software development environment" beginning. Which is great to teach you things that you wouldnt learn in other free online courses.
I think it is a essential resource that present you the full stack of a web app, acting as the perfect complement to more pure code oriented courses like freecodecamp and codecademy.
And you can really start from zero coding knowledge. I fully recommend it.
by dom96 on 12/18/16, 9:44 AM
In case anybody is interested in learning how to build a Twitter clone in Nim then consider taking a look at my book[1]. It's not free but it is a good way to learn Nim and web development concepts in a systems programming language.
1 - https://manning.com/books/nim-in-action?a_aid=niminaction&a_...
by Veratyr on 12/18/16, 5:13 AM
by newscracker on 12/18/16, 3:44 PM
by riffic on 12/18/16, 3:59 AM
by wofo on 12/18/16, 3:40 PM
by bootload on 12/18/16, 5:30 AM
by rexreed on 12/18/16, 5:38 PM
by Andrenid on 12/18/16, 7:06 AM
by user5994461 on 12/18/16, 1:01 PM
by was_boring on 12/18/16, 5:14 PM
It seems we have gone backwards in terms of speed of getting things done in the last decade.
by DrewWeth on 12/18/16, 1:22 AM
by chrismorgan on 12/18/16, 2:57 AM
by codesternews on 12/18/16, 9:31 AM
by azdavis on 12/18/16, 3:37 AM
by syngrog66 on 12/18/16, 7:42 PM
scope and scale are key
by vijayr on 12/18/16, 1:59 PM
by arisAlexis on 12/18/16, 6:40 AM
by fiatjaf on 12/18/16, 3:33 PM
by zizimaza on 12/18/16, 1:42 AM