Skip to main content

Discord's Internal Infrastructure

Taken off discord-infra.

Disclaimer

This has some degree of speculation as Discord's backend is closed.

Storage:

  • Scylla for storage
  • 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 the Gateway/WebSockets API, source.
  • Python for HTTP/REST API, The best guesses to which framework are Flask.
  • Go:
    • The embed servers, confirmed by Discord developers informally.
    • Note that the embedding servers and mediaproxy, while able to be its own logical unit, as experimented in litecord's [mediaproxy], can be treated separately.
    • Punt, replacing Logstash in ELK (Elasticsearch, Logstash, Kibana) setups.
    • Lilliput, which is a main part of their media proxy. Lillput is also written in C++. source
  • Rust for parts of the Discord Store, most commonly:
    • GameSDK, to make Discord integrations for any game.
    • Dispatch, which is a tool to send assets to Discord's servers.
    • It is known Rust is used for lazy guilds. source
    • Read States service, rewritten from Go. source
  • C++ for the Discord RPC library. (deprecated in favor of GameSDK)

Distribution:

Logging:

External services

General technologies

  • WebRTC for voice and video. Source, which also goes on more detail on how the voice server architecture works.

Many other sources