Every social product has the same question at its centre, and it has exactly two answers:
Do you build a user’s feed when someone posts, or when that user opens the app?
That is it. Everything else — the caches, the queues, the graph database — follows from which side you pick. And the reason this is a great interview question is that both answers are wrong, in ways that only become visible when you do the arithmetic.
Continue reading »