3.3 KiB
3.3 KiB
Discord's "stack"
Technologies Discord uses to provide the service, gathered from Discord's engineering articles and some other texts:
Storage:
- Cassandra for storage
- They used MongoDB as primary storage, but moved to Cassandra, source).
- It is still unknown what role MongoDB has on the stack, but it is still a primary part of the service: source and source
Programming languages:
- Elixir for any real time communication, source.
- Python for HTTP/REST API, The best guesses to which framework are Flask.
- Go for the embed servers and one element of their logging(see Punt)
- Rust for many parts of the Discord Store, most commonly:
- C++ for the Discord RPC library.
Distribution:
- Loqui for node communication.
Logging:
- Punt in favour of Logstash for logging.
- Elasticsearch that powers the search feature for users and powers logging.
- Sources about logging: Punt and this issue
- Source about message search
External services
- Google's Cloud Platform for their infrastructure, source
- Cloudflare as a proxy to almost all services, voice servers need to be direct connections, so they don't pass through CF.
General technologies
- WebRTC for voice and video. Source, which also goes on more detail on how the voice server architecture