Lorem Ipsum is simply dummy text of the printing and typesetting industry.
Need to mute your mic? Answer that sudden call ASAP? Quickly edit the last message to fix that spelling mistake that no one would really notice, but you would? All doable with just a few key presses — no mouse needed!
Keybinds & Keyboard shortcuts let you quickly access different functionality on the desktop app by pressing a few buttons at once! In this article, we’ll go over helpful built-in shortcuts for text and voice chat, how to make your own keybinds, and how one really helpful shortcut lets you breeze through Discord.
If you’re using the desktop client, you’ll be able to access these shortcuts even when Discord isn’t in focus. You can also use most of these on our web app using a desktop browser, but they won’t work if your web browser isn’t in focus.
You type all your messages and replies with that new clicky keyboard of yours, so why should you use your mouse to go and edit it? Just keep using that keyboard and help break it in a bit more!
These keyboard shortcuts can help you quickly access ways to edit or reply to a message, add emojis and stickers, or pin a message to reference later on.
Lastly, pressing the Up Arrow Key lets you quickly edit the last message you sent. Spelling error? idk what you mean.
Here are the Discord updates from November 18, 2024. You can also find the most recent updates in the Discord app under Settings > What's New.
The world of Arcane collides with Discord for the first time — and for the final time.
We’re going all-in and bringing you a special Arcane collection in the Shop in celebration of the show’s final season, containing new Avatar Decorations and Profile Effects featuring Jinx, Vi, Ekko, and iconic Arcane technologies and weapons.
Learn more on our blog, or head over to the Shop and grab your favorites!
The final season of Arcane has begun. If you’re reading this blog post and haven’t seen the first batch of episodes... WHAT ARE YOU DOING? GO WATCH RIGHT NOW!!!! AAAAAAAAAAAA-
*ahem* As we were saying...
Like many of you, we’re huge fans of the show and League of Legends itself. With the final season in full swing, we want to help celebrate in style by bringing the magic, madness, and mayhem of Arcane to your Discord profile.
We’re excited to finally share what we’ve been cooking up leading up to this moment: we’re going all-in and bringing you a special Arcane collection in the Shop!
Add your favorites to your profile and remember everything that happened in that final season — how you and your friends were chatting away as you watched it, listening to each other’s reactions and the maybe-laughs, maybe-tears it brought to everyone. (After all, who knows what’ll happen...?)
Use the button below to jump straight to the Shop, or keep scrolling to learn more about the Arcane collection.
The world of Arcane collides with Discord for the first time — and for the final time.
This season’s been wild so far and the finale’s gonna be massive, we just know it. As the final episodes release, we’re bringing you the opportunity to rep your favorite Arcane characters across your chats and communities on Discord!
Check out our Arcane collection in the Shop, containing new Avatar Decorations and Profile Effects featuring Jinx, Vi, Ekko, and iconic Arcane technologies and weapons from the show.
We’ve been working on these items for a long time. For each piece of the Arcane collection, we started by carefully picking which iconic Arcane imagery would go best on your Discord profile. From there, we get to sketching, coloring, and of course, the final step: animating!
Each item takes several months of ideation, planning, and finally, creation from scratch to finish. We really hope you enjoy using them as much as we did making them!
Add your Arcane favorites to your collection while they’re available — check out the Shop here:
You’re probably gonna be talking about the crazy things that happen between Jinx, Vi, and everyone in Arcane — we know we are. If your friends start DM’ing you asking who your favorite characters are and whose story ends on a good note, just point them toward your profile — after all, you’re too busy watching to talk right now.
There’s more to look forward to: Keep your eyes out for a second drop of even MORE Arcane decorations in the Shop on November 18th, designed around some mysterious aspects of Arcane that have yet to be revealed… until this weekend’s batch of episodes, that is. Shhhh... :)
Got any questions? We got you — this is a teamfight, after all! Send a message to us on X if you need backup.
Welcome to Patch Notes! In this series, we comb through the newest changes in performance, reliability, responsiveness, usability, and general bug-squishing we’ve done to make Discord better.
If you discover a bug of your own, check out our Bimonthly Bug Megathread on the community-ran r/DiscordApp subreddit. Tell us what’s been bothering you and our Engineering team will be more than happy to check it out.
All fixes listed below have been committed and merged, but may still be rolling out to individual platforms at the time of this post.
Forget ghosts, ghouls, and goliaths… we know the REAL monster is the games backlog that hides in the shadows! The good thing about the spooky season is the cool weather and chill vibes make it the perfect time to face that backlog monster head-on!
We’re catching up with Emi and Alex to hear how their figurative (and virtual) monster slaying is going. Plus, we’re saying a harrowing “hello!” to a couple NEW friends, Serena and Tyler, who have some great game recs to share if… for any reason… maybe you want to keep feeding your backlog monster?
Heyooo! I’m Tyler, and I’m on Discord’s Recruiting Operations team.
As many of you can probably relate to, I have a huge game backlog. I do my best to power through it, but… I’m a sucker for JRPGs and Atlus games specifically, so I couldn't resist picking up Metaphor: ReFantazio!
It feels like a high fantasy version of Persona, which I dig. My favorite feature, Social Links, has returned as “Bonds:” You build relationships with NPCs by spending time with them, which in turn unlocks new classes and upgrades them. I’m about 15 hours in (to what is probably an 80+ hour game), but already am loving all of the characters and what I’ve seen of the story.
When I can tear myself away, I’m practicing my speedrun of Gravity Circuit for an upcoming event. It’s an indie platformer, Mega Man-like game that I highly recommend! It has really tight controls and the platforming feels great — you have a ton of movement tools like wall jumping, a hookshot, divekicks, and even super moves. You’ll feel like a speedrunner even just playing through the game normally! The music is also incredible — I caught myself humming a few of the stage songs while working or doing chores around the house.
For my speedrun, I’m doing the “Dog%” category - throughout the stages, there are a variety of friendly robots that need to be rescued. In the whole game, two of them are lil pups (Yuki and Amadeus). In Dog%, you need to rescue both dogs in their two stages, head back to base, and last but not least, pet them both.
So I guess the spookiest thing about all this is that the ghosts of my backlog will continue to haunt me another day. xD
I’m a big fan of Final Fantasy, and one of my favorite monsters is the Tonberry. “He’s just a little guy!” you might exclaim upon first seeing one, and then the Tonberry will one-hit KO you. From then on, Tonberries are quite a bit spookier. Super adorable, but super deadly — which, in my opinion, should be the fundamentals of all monster design!
Apps on Discord help bring a bit more liveliness to your conversations with useful features, text-based games, and tools for any situation. Apps also include Activities, that bring larger full-screen experiences to you and your friends, including casual and competitive games, shared collaboration tools, and ways to listen to music together, all on mobile or desktop. Enjoy ‘em wherever you go!
So, where do you find apps? How do you use ‘em? Do you have to add Activities or other apps to your server before using them? How can you make your own application for Discord?
Read on for some quick-but-sweet responses to these popular questions.
Look under your seat: they’ve been with you the WHOLE TIME! Well, only until just recently…
We recently released the App Launcher, where you can check out thousands of apps, including Activities, in a single space. It’s in your chat bar in text chats and at the bottom of voice calls. You're just a click away if you see the button with shapes on it!
When you press that playful-lookin’ button, you’ll be presented with the App Launcher! You can browse some of the latest featured apps, or use the search bar on the top to find the perfect one for you.
There are apps for servers and DMs, Activities to play with your friends… if you can’t think of something you want right now, the App Launcher is always just a click away.
You can also browse through the Discord App Directory, where you’ll find an even BIGGER selection of apps that includes some specifically designed for servers and the communities that live within ‘em.
You can explore the Discord App Directory for yourself by clicking on the name of any server you’re viewing, and then choosing “App Directory.”
Fifty years of adventure! 2024 marks the 50th anniversary of Dungeons & Dragons. Fantasy adventures, friendships getting closer than ever, and most importantly: fireballs flung towards evil creatures. Over the years, the D&D community has shown off their incredible creativity and passion for exploring new worlds with the release of many unique D&D spinoffs, or creating their homebrew rulesets and content!
Never grabbed your trusty sword and shield to set off on a journey before? You’re in luck: the newly refreshed Player’s Handbook makes it a snap for beginner and experienced players alike to set forth on exciting new journeys with ease.
Discord has become a core component for many D&D adventurers across the world. Some play the game completely digitally with apps like Roll20, while others use their cameras in a Discord voice chat to show off huuuge, custom-made terrain, and meticulously crafted figures that represent their fantasy selves.
We also LOVE D&D at Discord, so in honor of Dungeons & Dragons’ 50th anniversary, we’re celebrating in two stylish ways: bringing you some brand new tabletop adventures — directly in Discord — to you and your party, and offering more ways to look the part when you’re playing your next campaign in chat.
This Halloween season, we’re bringing a Discord twist to your adventures into worlds unknown. How? Well, adventurer... you’ll have to discover that for yourself when you gather your party and play our haunting new Discord-themed One Shot adventure: Voyage Into Discord!
One Shots are a special type of adventure that’s playable in a single sitting (hence the “one”). They’re perfect for those who are still learning the ropes of the game or if you’re supporting your friends through their first foray and making sure they’re having a great time.
Within the raging tempests and chilling voids of the planes, there lies a sanctuary where the separate became whole and lost became found: the realms of Discord. The secrets of these worlds have been lost to the ages, but there are those who seek to recover them — and to discover the manifold wonders of Discord for themselves. Band together in Voyage Into Discord and uncover these secrets for yourselves!
Since it all takes place in Roll20, there’s no need to track physical maps, paint any miniatures, or worry about your first time being a good story-telling Dungeon Master. But don’t stop us if you eventually want to obtain some trinkets and miniatures to remember your adventure with. :)
Voyage Into Discord is completely playable in Discord! Open up the App Launcher, then find and launch the Roll20 Activity to get started. You’ll see the “Voyage Into Discord” campaign for free in the list of available campaigns and rulesets.
Discord’s mission is to be the best place for players to talk and hang out before, during, and after gaming. People deserve a safe and welcoming online space to explore their interests and connect with friends. We’re deeply committed to helping bridge the gap between our users and the mental health resources they deserve by meeting them where they are.
From the start, we aim to design our products to allow Discord users to be in control of their experience: they decide with whom they interact and what communities they join. Discord is not a platform designed to maximize engagement. We try to ensure that our platform emphasizes real-time interaction and connection among friends. In addition to our platform’s design, we are committed to continuing to evolve and improve so that we can better support our users.
First observed by the World Federation for Mental Health on Oct. 10, 1992, World Mental Health Day raises awareness on a global scale, mobilizes efforts, and champions those efforts to foster mental health and well-being.
Over the past year, our team has focused on conducting research, offering more resources for users, and supporting activities centered on the intersection of mental health and games. This World Mental Health Day, we’re excited to share what we’ve been working on!
Whoooosh…. rattlerattlerattle… CAW CAW!! The Halloween season looms upon us again, and the moon’s ominous light makes way for the monsters who bump in the night. And some may even cause… a fright…
We emerge from decrepit graveyard crypts to deliver important news on fell winds — a warning of two ways in which Hallow’s Eve monsters can make their way to your profile: gift Nitro to a friend during October and you’ll receive a haunting Avatar Decoration to keep! Or, explore even more Halloween costumes for your profile with the Spooky Nights Shop collection.
This mysterious gifting opportunity is only available for a limited time… continue reading this mysterious scroll to learn how to partake in these spooky celebrations.
A devious reward is within your reach — no tricks this time… it’s all treats! To obtain such a mysterious treasure, you must do something so astonishingly brave in the face of nightmarish adversity that your home will be considered the best place for Trick or Treaters around the neighborhood to visit.
You’ll have to…….. be a GREAT FRIEND.
During October 2024, if you gift Discord Nitro to a friend, you’ll receive a spine-tingling Avatar Decoration of your own to collect and keep! Gather the minions of Halloween around you, wherever you find yourself on Discord, at any time of the year.
Heed our warning: this, what the Discord-nomicon calls a “Nitro promotion,” is only around until a little while. You have until November 3, 2024 to treat a friend to Nitro, and after that, the Minions Avatar Decoration returns whence it came.
Should you need some guidance, you may borrow a transcript of the Discord-nomicon — direct your eyes towards the so-called “Help Center article” to learn more about this Nitro news.
Quests launched earlier this year as a way to help game developers reach current and potential players. Our goal was to create an advertising format where everyone wins: Players discover new games and earn rewards for playing their favorite games, and developers authentically engage their audience.
It’s still early, but the positive feedback from the millions of players who have completed a Quest has exceeded our expectations. We’ve run dozens of Quests campaigns for some of the biggest titles, including Fortnite, Genshin Impact, and World of Warcraft. These campaigns have delivered strong results, driving a 16% lift in average playtime and 9% lift in average player counts. To see results like this — consistently — so early in our journey, is encouraging.
Venture on for a deeper dive into some of the early Quests results, which fuel our ambition to deliver the world’s most player-centric ads. Plus, you’ll learn details on a new type of Quest coming to Discord later this year.
Quests are designed to help connect developers to players, and early campaign results show that’s exactly what’s happening.
Genshin Impact’s first Quest drove an 80% increase in gameplay hours and a 3x increase in friend to friend streams. Our World of Warcraft: The War Within Quest had more than one million participants, and as part of WoW’s PR and marketing efforts it contributed to a 63% increase in the number of people playing the game on Discord. Simply put: when players streamed the game to their friends, more of their friends joined in.
Indie developers are experiencing success too. 90% of the players who joined the Krunker Strike Quest through the Activity on Discord were either new or lapsed — leading to a 33% increase in player count during launch week.
We’re really encouraged by early results and the measurable impact Quests have in helping developers grow their business — but there’s more to do. In particular, developers have been asking for more ways to bring their games to our users, especially upcoming games and major content releases, like new seasons and DLC drops.
Welcome to Patch Notes! In this series, we comb through the newest changes in performance, reliability, responsiveness, usability, and general bug-squishing we’ve done to make Discord better.
If you discover a bug of your own, check out our Bimonthly Bug Megathread on the community-ran r/DiscordApp subreddit. Tell us what’s been bothering you and our Engineering team will be more than happy to check it out.
All fixes listed below have been committed and merged, but may still be rolling out to individual platforms at the time of this post.
By the time you read this, the summer travel season in the US will be over, and we’re all back to our gremlin caves and our desks with piles of Cheetos Puffs. If you did some traveling of your own, did ya mark off a few places from your “Places to Visit” list? Or did you check off a few games from your backlog? (Or BOTH??)
To cap off the travel season in this part of the globe, we’ll be catching up with Tracie, Matt, Emi, Cody, and NEW friend Armando about the games they’ve played lately and what may have kept their attention while on a plane, train, or sitting in the backseat of an itty-bitty car. honk honk
Heyo! I’m Armando and I’m on Discord’s Integrated Marketing team!
Two games have taken up a lot of my time lately: Astro Bot and Into the Breach.
Astro Bot had absolutely no business being so amazing. I thought Astro’s Playroom was a fun platformer back when it came out, but Astro Bot dials it up to 11. I platinumed it in just a weekend and had fun every second I was doing it. The creativity in the level design and pure joy in the little moments are things I haven’t seen since I first played Super Mario Galaxy. I truly think Astro Bot has a fair shot for GOTY.
Into the Breach came out in 2018 but I’m just getting around to picking it up. It’s great on my Switch, and to me, it plays like a mix of mini-chess and a roguelite. It’s a turn-based strategy game where you command giant mechs to protect your people from the dastardly Vek creatures! My joy-cons have definitely been sweaty with how tense this game gets…excuse me while I go play it again right now.
When I’m going I’m still gaming! My Switch is with me quite often, especially when I’m in planes, trains, and automobiles. If it’s not a new game I’m playing, I tend to go back to some games that feel timeless to me. Usually, that means I’ll discover some new secret in The Legend of Zelda: Breath of the Wild that I missed in my first 150 hours (pff amateur!!). Dead Cells is another go-to for me, and I think Balatro will be, too. Even though Balatro’s newer, it got to the point where I’d see those floating cards in my sleep so, yeah, that’s a good travel pick.
I don’t want to leave out my trusty mobile puzzle games, either! I’ve been trying to beat my friend’s high score of 1010! for years. Also, a lot of airplane seat screens now have 2048 built into them, so it’s great for plane rides but maybe not-so-great for the person sitting in front of me who just feels my finger swiping on their seat for an hour.
Here are the Discord updates from September 26, 2024. You can also find the most recent updates in the Discord app under Settings > What's New.
Looking for something fun to do? Tap into apps anywhere on Discord and discover new ways to play games, listen to music, and watch videos together!
The App Launcher, now available on desktop and mobile, lets you easily bring more fun to any of your chats and voice calls. Search through thousands of apps directly within the App Launcher, or browse curated collections. If you find one you like, you can add it to your account for easy access!
Hop in one of your conversations and press the App Launcher button to try them for yourself! Learn about what’s new with apps over at our blog.
Here's your regular reminder that our engineers are absolute wizards: they've recently reduced the amount of crashes on iOS by a whopping 84%! See what else they've taken their metaphorical wrenches to in our latest Patch Notes.
Discord is the place for friends to come together, hang out, and game. Our platform was built by people who love to play games, for people who love to play games. And today, over 90% of the 200 million people using Discord monthly spend over 1.5 billion hours playing thousands of unique titles each month. That’s why we’ve been hard at work building our Embedded App SDK so we can enable even more game developers to bring experiences to Discord that our users love.
Today, we’re excited to announce the next big step in our developer ecosystem: we are officially opening Discord Activities to all developers. Whether you’re creating games, music experiences, or other interactive Activities with the Embedded App SDK, you can now build, launch, distribute, get discovered, and monetize natively on Discord. Read on to learn more.
From Day 1, we built Discord as a platform that developers could extend and customize to their needs with apps. Our thriving ecosystem of apps is used by over 25% of our monthly active users, and we’re seeing incredible early traction with early access Activity developers like Death by AI, Krunker Strike FRVR, and Farm Merge Valley.
Since building our first in-house Activity in 2022, we've believed that the unique environment of Discord, where friends hang out in servers and game on voice calls, could foster creativity and innovation in social gaming. As we set out to build the Embedded App SDK, we started to reimagine how friend groups might hang out together when they had easy access to lightweight and highly engaging games that were a click away from anywhere within Discord.
This is where Discord shines. Developers can leverage our naturally social communities to let already engaged players connect, play, and build relationships. True social gaming isn’t just about playing with friends; it’s about finding new ones too — and we make both possible.
When we rolled out the developer preview of the Embedded App SDK earlier this year, it was a hit. Tens of thousands of developers quickly started bringing their ideas to life. We believe this growing interest will push the boundaries of social gaming and help accelerate growth and innovation for a broader set of developers.
Soon after, we started to hear developers asking and thinking about the same types of questions that we'd been exploring around the future of social gaming, Questions like: what would it look like for groups of friends to work together in their games, across the day and over different time zones? How would memes emerge if games had bots that were natively embedded into the actual conversation? How might generative AI evolve with a built-in social communication layer?
Just as we saw with some of the most ubiquitous app ecosystems of the past decade, Discord’s open platform is a new frontier for game developers that will foster a whole new set of concepts and ideas to go viral.
From our conversations with many developers, it’s clear that building on Discord allows them to get straight to the full expression of what they want to build. Developers are finding an accelerated path to product-market fit by building and scaling social games and experiences where a young, early adopter base already hangs out. With access to strong social channels, they can get immediate feedback, fresh ideas, and real-time insights into how people interact with their products.
Playroom's launch of "Death by AI" is a prime example. By gathering user feedback directly on Discord, they were able to prioritize key features and fixes, optimize the game in over 10 languages, add AI voices, introduce new prompt packs, and implement in-app purchases — it captivated nearly 7 million players and accumulated over 1 million hours of gameplay in just weeks.
And, they’re just one of many examples of accelerated growth thanks to Discord’s vibrant, naturally social environment. On our platform, developers have a unique chance to connect with the millions of people who have a unique affinity and love for games.
Picture this: It's finally Friday, and you're gearing up for a late-night gaming session with your buddies on Discord. It’s right between the pre-game banter and the main event. A few of your friends are ready, but, you're still waiting for the others to come online, so it’s a little quiet in the meantime.
Instead of waiting idly, why not tend to your virtual crops in Farm Merge Valley, groove to a pre-hype playlist with your friends with Rythm, or whip up a video of your friend doing the macarena with Viggle?
With a whole world of apps on Discord just a click away, you won’t have to sit in silence again. No matter if you're in a voice call, a text chat, a server, or a DM, or whether you or your friends are on desktop or mobile, there’ll always be something to do and play — solo or with friends!
What… ARE apps…? They’re more than they appear.
Apps bring a world of entertainment and utility right into your chat. Whether you're in the mood for playing party games, watching videos, listening to music, tracking stats for your favorite game, or exploring creative tools, apps offer endless ways to take your hangouts to the next level. Popular apps like Gartic Phone, YouTube Watch Together, Rythm, Stat Tracker, and Midjourney make it easy to enjoy these experiences together, no matter where you hang out on Discord.
Are you attending Tokyo Game Show this week? So is Discord! We’re traveling halfway across the globe from San Francisco to Tokyo to meet everyone on the TGS show floor this year, and show why Discord is the best place to talk for players of all styles and genres.
Swing by between September 26 - September 29th, 2024 to enter the booth, learn about all things Discord, and play some Street Fighter 6 with your friends. If you’re looking to learn, attend some of our panels! Or, get your hands on one of our limited-run Discordopolis newspapers and learn about the virtual world that our show booth is designed after.
Find us at Booth 07-C03 and come say hello! Peruse the stuff we’ll have in store below.
Being at Tokyo Game Show means one important thing: A BIG OL’ DISCORD BOOTH! This year, we're bringing the world of Discordopolis to Japan: a neon-soaked city of the future where everyone who plays games can talk, connect, and play — it’s a Discord server come to life.
Traverse through the booth and become immersed in the world of Discordopolis. While you’re exploring, you can take a detour and join in on a few pick-up games of Street Fighter 6 on PC or PlayStation®5, just like you would while hanging out on Discord. We’ll have them set up for crossplay, so you can play on your preferred platform.
On Saturday, September 28th at 10:30 am Japan Standard Time (JST), you can put your skills to the test and challenge Wumpus to Street Fighter 6: Don’t underestimate Wumpus — they’ve been practicing at their local meetups and learning from the best. They’ve gotten good. Like, really good.
Wumpus told us to raise the stakes a bit, so… anyone who challenges Wumpus to Street Fighter 6 will walk away with a reward, but if you defeat Wumpus, you’ll walk away with a Wumpus-themed ElGato Wave:3 Microphone! The perfect companion to bring back home and talk the night away in voice.
Not much of a fighting game player? You can still win! Complete secret in-booth quests and you could win one of the thousands of pieces of Discord merch we brought to the show. We’ll even have a limited amount of a special edition Wumpus-themed item debuting at Tokyo Game Show What’s it gonna be!? You’ll have to complete our in-booth quests to find out…
At home and into Street Fighter? At the time of writing, we’re running a Discord Quest for Street Fighter 6! Play SF6 for 15 minutes on PC or a connected console and score an Avatar Decoration to use for two months. It’s like you won your own prize from halfway across the world! See how Quests work here.
At Discord, we’re always thinking about ways to improve our services and increase performance. After all, the faster our app gets, the sooner you can return to your friends and conversations!
Over the last six months, we embarked on a quest to support this endeavor, working to reduce the amount of bandwidth our clients use, especially on iOS and Android, hoping that decreasing bandwidth usage would lead to a more responsive experience.
When your client connects to Discord, it receives real-time updates about what’s happening through a service that we call the “gateway.” Since late 2017, the client’s gateway connection has been compressed using zlib, making messages anywhere from 2 to 10 times smaller.
Since then, zstandard (originally released in 2015) has gained enough traction to become a viable replacement for zlib. Zstandard offers higher compression ratios and shorter compression times and supports dictionaries: a way to preemptively exchange information about compressed content, further increasing compression ratios and reducing the overall bandwidth usage.
We attempted to use zstandard in the past, but, at the time, the benefits weren’t worth the costs. Our testing in 2019 was desktop-only and used too much RAM. However, a lot can happen in five years! We wanted to give it another try, and the support for dictionaries appealed to us, especially as most of our gateway payloads are small and in a well-defined shape.
We believed the predictability of these payloads would be a perfect application of dictionaries to further reduce bandwidth usage.
Armed with this knowledge, we put on our lab coats, slapped on our goggles, and started experimenting. On paper, we thought zstandard would be better than zlib but we wanted to validate this theory against our current workload.
We opted to do a “dark launch” of plain zstandard: the plan was to compress a small percentage of production traffic both with zlib and zstandard, collect a bunch of metrics, then discard the zstandard data. This allowed us to experiment with zstandard to quickly compare its results against zlib. Without this experiment, we would have to add zstandard support for our clients — desktop, iOS, and Android — which would require about a month’s lead time before we could fully determine the effects of zstandard. We didn’t know how well zstandard would perform and didn’t want to wait a whole month, but a dark launch allowed us to iterate over days as opposed to weeks.
Once we got our experiment set up and deployed onto our gateway cluster, we set up a dashboard to see how zstandard performed. We flipped the switch to start sending a teeeeeny bit of traffic through the dark launch code, and the initial results appeared to be… underwhelming. Zstandard was performing worse than zlib was.
To compare the performance of these two compression algorithms, we used their “compression ratio.” The compression ratio is measured by taking the uncompressed size of the payload and dividing it by the compressed size — a larger number is better.
Looking at the images above, which measure the compression ratio for the various dispatch types (op 0), with zlib, user_guild_settings_update has a compression ratio of 13.95 while with zstandard it has a compression ratio of 12.26.
The graph below further illustrates that zstandard performed worse than zlib: the average size of a MESSAGE_CREATE payload compressed with zlib was around 250 bytes, while with zstandard, the same payload was over 750!
The same trend was observed for most other dispatches: zstandard was not outperforming zlib like we thought it would. What’s going on here?
Thanks to Large Language Models (or LLMs), embeddings have become commonplace. Embeddings are simple but powerful structures that capture complex data as a series of numbers — a vector — and are a natural way to represent many things within machine learning models. In LLMs, embeddings represent words (or tokens).
Here at Discord, we built DERE, or Discord's Entity-Relationship Embeddings, which represent things like servers (in this article, we’ll use their technical term “guilds”), users, games, and other entities. Just as embeddings from LLMs have made it easy to build text-based applications quickly and easily, these embeddings make it easy for ML engineers at Discord to build models and generate insights from our data faster than ever.
If you’re familiar with Natural Language Processing, this technique is used to build pre-trained word representations from text. In the NLP setup, the relationships between words are defined by the neighbors of any given word. So, in the sentence “the cat sat”, you could say “cat” has a relationship to “the” and “sat”.
DERE is the mechanism Discord uses to build meaningful representations from raw data.
At its core, DERE pre-trains embeddings for each user, guild, game, and various other entities. Effectively, it maps entity IDs, like guild ID or game IDs, to a vector which can then be used in various ways.
DERE relies solely on social graph-based features, such as relationships between users and their interactions within the platform (e.g. what guilds you’re in). If you re-imagine the NLP example above and tilt your head slightly, you could sort of make a sentence out of this… maybe something like: “Nelly is friends with Clyde.” In DERE, our setup is pretty much exactly like this! Nelly->is_friend->Clyde. While simple, this is very powerful at scale.
Under the hood, DERE uses an unsupervised machine learning technique known as “contrastive learning,” which trains on triplets of head-relation-tail (h, r, t) examples. The data used in DERE is broken down into these triples, which our ML models can use to unravel the relationships and build useful representations.
Examples of (h, r, t) triples include:
An example of what the model sees during training time is:
(h, r, t) = (661027446241361930, 17, 974519864045756446)
Where this particular example is the edge between my user ID and the OpenAI server ID. Relation 17 (at the time of writing) is the “user_in_guild” relationship.
Training is thus two embedding lookups: one for the embedding for my user ID and the other for the embedding of the server ID. The relation ID is then used to choose which model we’ll use to transform these entities into the same space:
Our positive examples are all of the edges that exist between any two entities in our graph, such as my user ID and a guild that I’m in. Negative examples are constructed on-the-fly during train time by randomly corrupting positive examples. So continuing the example above, an example would be my user id in guild <xyz> where I’m not actually in that guild. Because our training data is massive, corrupting positive edges is a safe operation. To give an idea of how big these graphs can get, we operate on billions of entities and tens of billions of relationships.
Our loss function during training is a ranking loss called triplet margin loss which optimizes related entities to be nearby each other in their embedding space, and unrelated entities to be further away from each other. We could also use logistic or softmax loss, depending on use case.
Continuing from the above example, my (h, r, t) triple is considered a positive example since it exists in the training data. If we corrupted the edges within the batch, would could wind up with a negative example like
(h, r, t) = (661027446241361930, 17, 560127830160048128)
Where the tail was randomly selected and is a Rust server I’m not a member of.
Now we can take the positive and negative examples and calculate our loss:
We use this loss to update the learned transformation as well as the embeddings themselves.