How Instagram Feeds Work: Celery and RabbitMQ
blogs.vmware.com
How Instagram Feeds Work: Celery and RabbitMQ
1–10 of 11 posts
Re: How Instagram Feeds Work: Celery and RabbitMQ
#2They seem to favor using disk space and saving on processing time and memory.
Re: How Instagram Feeds Work: Celery and RabbitMQ
#3Re: How Instagram Feeds Work: Celery and RabbitMQ
#4Re: How Instagram Feeds Work: Celery and RabbitMQ
#5Re: How Instagram Feeds Work: Celery and RabbitMQ
#6This post is great.. but its from April 2013. I wonder how their architecture has changed since then?
http://instagram-engineering.tumblr.com/post/89992572022/mig...
Re: How Instagram Feeds Work: Celery and RabbitMQ
#7If they are using EC2 hosts, I wonder why they don't use AWS SQS/SNS for their queue systems and Dynamo for their materialized views.
Re: How Instagram Feeds Work: Celery and RabbitMQ
#8The article states:
'directly fetch all the photos that the user followed from a single, monolithic data store, sort them by creation time and then only display the latest 10'
That isn't how the query would work. It is implying that the query would return all the results, clearly it would only return 10. I haven't read all the details, I'm sure Instagram does something better then this basic SQL now but it is silly in a technical article to overstate the problem in such an obviously incorrect way.
Re: How Instagram Feeds Work: Celery and RabbitMQ
#9If they are using EC2 hosts, I wonder why they don't use AWS SQS/SNS for their queue systems and Dynamo for their materialized views.
Probably due to lock in.
Re: How Instagram Feeds Work: Celery and RabbitMQ
#10In short, the feeds are heavily denormalized and are constructed when new photos are added by people you follow, rather than at request time. They seem to favor using disk space and saving on processing time and memory.
It's basically just an inversion; instead of the cache being a read-through layer over the database, the database becomes a write-through layer over the cache.