In the age of the unicorn startups, @SlackHQ has drawn attention for its rise and potential for disrupting traditional business communications tools, particularly email. You also must've used it sometime recently!
Slack's IT architecture is based on a broad range of services offered by AWS. EC2 for compute tasks, Blockstore for nightly backups, S3 for file uploads and asset management, VPC for security groups and firewall rules to name some.
Along with the AWS services, Slack is using the Redis data structure server, the Apache Solr search tool, the Squid caching proxy, and a MySQL database.
The web client is built with JS and ES6 with ReactJS, Desktop app with Electron.
The Android app is based on Java and Kotlin while the iOS one with Objective C and Swift!
They have been using Memcached mechanism for the Caching and Websockets for Real time messaging.
Stay tuned for more such posts daily! 🚀✨
• • •
Missing some Tweet in this thread? You can try to
force a refresh
Rendering even the simplest web page on Twitter requires the collaboration of dozens of network services speaking many different protocols.
Let's take a look how Twitter Dev team is pulling this off building robust systems!
A thread 🧵
In such large scale production systems, a frequent cause of outages is poor interaction between components in the presence of failures; common failures include crashed hosts and extreme latency variance.
Finagle is a protocol-agnostic, asynchronous Remote Procedure Call (RPC) system for the Java Virtual Machine (JVM) that makes it easy to build robust clients and servers in Java, Scala, or any JVM-hosted language.
Despite the availability of Twemcache and Redis, both highly popular and seemingly mature projects, existing solutions don’t really fully answer the cache requirements and challenges Twitter faces🤯🤯
Pelikan addresses most of these caching issues by treating cache servers as a framework, abstracting common functionalities as modules, and implementing features against common interfaces.