discord-infra/internals.md

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:
    • Game SDK, to make Discord integrations for any game.
    • Dispatch, which is a tool to send assets to Discord's servers.
  • C++ for the Discord RPC library.

Distribution:

  • Loqui for node communication.

Logging:

External services

General technologies

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

Many other sources