на чем написан дискорд веб
Как Discord одновременно обслуживает 2,5 млн голосовых чатов с помощью WebRTC
С самого начала мы так спланировали инженерные и продуктовые решения, чтобы Discord хорошо подходил для голосовых чатов во время игры с друзьями. Эти решения позволили сильно масштабировать систему, обладая небольшой командой и ограниченными ресурсами.
В статье рассматриваются различных технологии, которые использует Discord для аудио/видеочатов.
Для ясности всю группу пользователей и каналов мы будем называть «группа» (guild) — в клиенте они называются «серверами». Вместо этого здесь термин «сервер» относится к нашей серверной инфраструктуре.
Главные принципы
Каждый аудио/видеочат в Discord поддерживает много участников. Мы наблюдали, как в больших групповых чатах тысяча человек разговаривают по очереди. Такая поддержка требует клиент-серверной архитектуры, потому что одноранговая пиринговая сеть становится непомерно дорогой при увеличении числа участников.
Маршрутизация сетевого трафика через серверы Discord также гарантирует, что ваш IP-адрес никогда не виден — и никто не запустит DDoS-атаку. У маршрутизация через серверы есть и другие преимущества: например, модерация. Администраторы могут быстренько отключить звук и видео нарушителям.
Клиентская архитектура
Discord работает на многих платформах.
Аудио и видео в Discord работает на WebRTC. Таким образом, браузерное приложение полагается на реализацию WebRTC в браузере. Однако приложения для десктопов, iOS и Android используют единый мультимедийный движок C++, построенный поверх собственной библиотеки WebRTC, специально адаптированной к потребностям наших пользователей. Это означает, что некоторые функции в приложении работают лучше, чем в браузере. Например, в наших нативных приложениях мы можем:
В Discord голосовая и видеосвязь инициируется путём ввода голосового канала или вызова. То есть связь всегда инициируется клиентом — это снижает сложность клиентской и серверной части, а также повышает устойчивость к ошибкам. В случае сбоя инфраструктуры участники могут просто повторно подключиться к новому внутреннему серверу.
Под нашим контролем
Контроль нативной библиотеки позволяет реализовать некоторые функции иначе, чем в браузерной реализации WebRTC.
Во-первых, WebRTC полагается на протокол Session Description Protocol (SDP) для согласования аудио/видео между участниками (до 10 КБ на каждый обмен пакетами). В собственной библиотеке для создания обоих потоков — входящего и исходящего — используется API более низкого уровня от WebRTC ( webrtc::Call ). При подключении к голосовому каналу происходит минимальный обмен информацией. Это адрес и порт сервера бэкенда, метод шифрования, ключи, кодек и идентификация потока (около 1000 байт).
Кроме того, для определения наилучшего маршрута между участниками WebRTC использует Interactive Connectivity Establishment (ICE). Поскольку у нас каждый клиент подключается к серверу, нам не нужен ICE. Это позволяет обеспечить гораздо более надёжное соединение, если вы находитесь за NAT, а также сохранить ваш IP-адрес в секрете от других участников. Клиенты периодически пингуются, чтобы файрвол сохранял открытое соединение.
Наконец, WebRTC использует Secure Real-time Transport Protocol (SRTP) для шифрования носителей. Ключи шифрования устанавливаются с помощью протокола Datagram Transport Layer Security (DTLS) на основе стандартного TLS. Встроенная библиотека WebRTC позволяет реализовать собственный транспортный уровень с помощью webrtc::Transport API.
Вместо DTLS/SRTP мы решили использовать более быстрое шифрование Salsa20. Кроме того, мы не отправляем аудиоданные в периоды тишины — частое явление, особенно в больших чатах. Это приводит к значительной экономии пропускной способности и ресурсов CPU, однако и клиент, и сервер должны быть готовы в любой момент прекратить приём данных и переписать порядковые номера аудио/видеопакетов.
Поскольку веб-приложение использует браузерную реализацию WebRTC API, тут нельзя отказаться от SDP, ICE, DTLS и SRTP. Клиент и сервер обмениваются всей необходимой информацией (менее 1200 байт при обмене пакетами) — и у клиентов на основе этой информации устанавливается сессия SDP. Бэкенд отвечает за устранение различий между десктопными и браузерными приложениями.
Архитектура бэкенда
На бэкенде работает несколько сервисов для голосовых чатов, но мы сосредоточимся на трёх: Discord Gateway, Discord Guilds и Discord Voice. Все наши сигнальные серверы написаны на Elixir, что позволяет многократно повторно использовать код.
Когда вы в сети, ваш клиент поддерживает соединение WebSocket к шлюзу Discord Gateway (мы называем его шлюзовым подключением WebSocket). Через это соединение ваш клиент получает события, связанные с группами и каналами, текстовые сообщения, пакеты присутствия и т. д.
При подключении к голосовому каналу статус подключения отображается объектом состояния голосовой связи. Клиент обновляет этот объект по шлюзовому подключению.
При подключении к голосовому каналу вам назначают один из серверов Discord Voice. Он отвечает за передачу звука каждому участнику канала. Все голосовые каналы в группе назначаются одному серверу. Если вы первый в чате, сервер Discord Guilds отвечает за назначение сервера Discord Voice всей группе с помощью описанного ниже процесса.
Назначение сервера Discord Voice
Каждый сервер Discord Voice периодически сообщает о своём состоянии и нагрузке. Эта информация помещается в систему обнаружения сервисов (мы используем etcd), как обсуждалось в предыдущей статье.
Сервер Discord Guilds следит за системой обнаружения сервисов и назначает группе наименее используемый сервер Discord Voice в данном регионе. Когда он выбран, все объекты состояния голосовой связи (также поддерживаемые сервером Discord Guilds) передаются на сервер Discord Voice, чтобы тот мог настроить переадресацию аудио/видео. Клиенты уведомляются о выбранном сервере Discord Voice. Тогда клиент открывает второе соединение WebSocket с голосовым сервером (мы называем его голосовым соединением WebSocket), которое используется для настройки переадресации мультимедиа и индикации речи.
Когда в клиенте отображается статус Awaiting Endpoint, это означает, что сервер Discord Guilds ищет оптимальный сервер Discord Voice. Сообщение Voice Connected означает, что клиент успешно обменялся пакетами UDP с выбранным сервером Discord Voice.
Сервер Discord Voice содержит два компонента: сигнальный модуль и блок ретрансляции мультимедиа, называемый блоком избирательной пересылки, SFU (selective forwarding unit). Сигнальный модуль полностью контролирует SFU и отвечает за генерацию идентификаторов потоков и ключей шифрования, перенаправление индикаторов речи и т. д.
Наш SFU (на C++) отвечает за направление аудио- и видеотрафика между каналами. Он разработан своими силами: для нашего конкретного случая SFU обеспечивает максимальную производительность и, таким образом, самую большую экономию. При модерации нарушителей (отключение звука на сервере), их аудиопакеты не обрабатываются. SFU также работает мостом между нативными и браузерными приложениями: он реализует транспорт и шифрование и для браузера и для нативных приложений, преобразуя пакеты в процессе передачи. Наконец, SFU отвечает за обработку протокола RTCP, который используется для оптимизации качества видео. SFU собирает и обрабатывает отчёты RTCP от получателей — и уведомляет отправителей, какая полоса доступна для передачи видео.
Отказоустойчивость
Поскольку напрямую из интернета у нас доступны только сервера Discord Voice, речь пойдёт о них.
Сигнальный модуль непрерывно контролирует SFU. Если тот сбоит, он мгновенно перезапускается с минимальной паузой в обслуживании (несколько потерянных пакетов). Состояние SFU восстанавливается сигнальным модулем без какого-либо взаимодействия с клиентом. Хотя сбои SFU редки, мы используем тот же механизм для обновления SFU без перерывов в обслуживании.
Когда падает сервер Discord Voice, он не отвечает на пинг — и удаляется из системы обнаружения сервисов. Клиент также замечает сбой сервера из-за разрыва голосового соединения WebSocket, тогда он запрашивает пинг голосового сервера через шлюзовое соединение WebSocket. Сервер Discord Guilds подтверждает сбой, консультируется с системой обнаружения сервисов и назначает группе новый сервер Discord Voice. Затем Гильдии Discordов отправляют все объекты состояния голоса на новый голосовой сервер. Все клиенты получают уведомление о новом сервере и подключаются к нему для запуска настройки мультимедиа.
Довольно часто серверы Discord Voice попадают под DDoS (мы видим это по быстрому увеличению входящих IP-пакетов). В этом случае мы выполняем такую же процедуру, как при сбое сервера: удаляем его из системы обнаружения сервисов, выбираем новый сервер, переводим на него все объекты состояния голосовой связи и уведомляем клиентов о новом сервере. Когда DDoS-атака утихает, сервер возвращается обратно в систему обнаружения служб.
Если владелец группы решает выбрать новый регион для голоса, мы выполняем очень похожую процедуру. Сервер Discord Guilds выбирает наилучший доступный голосовой сервер в новом регионе, консультируясь с системой обнаружения сервисов. Затем он переводим на него все объекты состояния голосовой связи и уведомляем клиентов о новом сервере. Клиенты разрывают текущее соединение WebSocket со старым сервером Discord Voice и создают новое соединение с новым сервером Discord Voice.
Масштабирование
Вся инфраструктура Discord Gateway, Discord Guilds и Discord Voice поддерживает горизонтальное масштабирование. Discord Gateway и Discord Guilds работают в облаке Google.
У нас более 850 голосовых серверов в 13 регионах (размещёнными более чем в 30 дата-центрах) по всему миру. Такая инфраструктура обеспечивает большую избыточность на случай сбоев в дата-центрах и DDoS. Мы работаем с несколькими партнёрами и используем свои физические серверы в их дата-центрах. Совсем недавно добавили регион Южной Африки. Благодаря инженерным усилиям как в клиентской, так и в серверной архитектуре, теперь Discord способен обслуживать одновременно более 2,6 миллиона пользователей голосового чата с исходящим трафиком более 220 Гбит/с и 120 млн пакетов в секунду.
Что дальше?
Мы постоянно следим за качеством голосовой связи (метрики поступают с клиентской стороны на серверы бэкенда). В будущем эта информация поможет в автоматическом обнаружении и устранении деградаций.
Хотя мы запустили видеочат и скринкасты год назад, но сейчас их можно использовать только в личных сообщениях. По сравнению со звуком, видео требует значительно большей мощности CPU и пропускной способности. Задача состоит в том, чтобы сбалансировать объём пропускной способности и ресурсов CPU/GPU, используемых для обеспечения наилучшего качества видео, особенно когда группа геймеров в канале находится на разных устройствах. Решением проблемы может стать технология масштабируемого видеокодирования Scalable Video Coding (SVC), расширение стандарта H.264/MPEG-4 AVC.
Для скринкастов нужно ещё больше полосы, чем для видео, из-за более высокого FPS и разрешения, чем у обычной веб-камеры. Мы сейчас работаем над поддержкой аппаратное кодирования видео в десктопном приложении.
СОДЕРЖАНИЕ
История
По словам Цитрона, в процессе разработки он заметил, насколько сложно его команде разработать тактику в таких играх, как Final Fantasy XIV и League of Legends, с использованием доступного программного обеспечения для передачи голоса по IP (VoIP). Это привело к разработке службы чата с упором на удобство использования с минимальным влиянием на производительность.
В январе 2016 года Discord привлекла дополнительные 20 миллионов долларов финансирования, включая инвестиции от WarnerMedia (затем TimeWarner). В 2019 году WarnerMedia Investment Group продала свою долю, поскольку была закрыта после приобретения AT&T WarnerMedia.
В апреле 2020 года имя пользователя Discord в Twitter было изменено с @discordapp на @discord. Позже в мае 2020 года Discord изменил свой основной домен с discordapp.com на discord.com.
В мае 2021 года Discord провела ребрендинг своего логотипа в форме игрового контроллера «Clyde» в честь своего шестого юбилея. Компания также изменила цветовую палитру своего бренда и пользовательского интерфейса на более насыщенную, чтобы она была более «смелой и игривой», и изменила свой слоган с «ваше место, чтобы поговорить» на «вообразите место», полагая, что это будет быть проще прикрепить к дополнительным лозунгам; эти изменения были встречены негативной реакцией и критикой со стороны пользователей Discord.
В июле 2021 года Discord приобрела Sentropy, компанию, специализирующуюся на использовании систем искусственного интеллекта для мониторинга онлайн-сетей на предмет оскорбительных сообщений с целью выявления проблемных пользователей и предоставления пользователям рекомендаций по способам блокировки таких сообщений или пользователей. будет использоваться исключительно для мониторинга серверов Discord, чтобы помочь в достижении целей Discord по предотвращению преследований пользователей.
Функции
Discord создан для создания частных и публичных сообществ и управления ими. Он предоставляет пользователям доступ к инструментам, ориентированным на коммуникационные услуги, такие как голосовые и видеозвонки, постоянные чаты и интеграцию с другими сервисами, ориентированными на геймеров, а также общую возможность отправлять прямые сообщения и создавать личные группы. Хотя поначалу кажется, что сервисы Discord ориентированы только на геймеров, в последние годы было внесено несколько новых обновлений, что сделало их более полезными для населения в целом.
Серверы
Сообщества Discord организованы в отдельные наборы каналов, называемых серверами. В документации для разработчиков серверы называются «гильдиями». Пользователи могут бесплатно создавать серверы, управлять их публичной видимостью и создавать каналы и категории каналов до 250. Любой конкретный сервер может иметь до 800 000 участников, как было обнаружено, когда официальный сервер Discord для видеоигры Genshin Impact достиг максимальной емкости.
Начиная с октября 2017 года Discord позволяет разработчикам и издателям игр проверять свои серверы. Проверенные серверы, такие как проверенные учетные записи в социальных сетях, имеют значки, чтобы пометить их как официальные сообщества. Проверенный сервер модерируется собственной модерационной группой разработчика или издателя. Позднее в феврале 2018 года проверка была расширена, чтобы включить киберспортивные команды и музыкальных исполнителей.
К концу 2017 года было проверено около 450 серверов.
Участники могут помочь серверам получить льготы на трех уровнях с помощью функции «Server Boost», которая открывает более качественные голосовые каналы, больше слотов для смайликов и другие льготы. Пользователи могут покупать бустеры для серверов за 4,99 доллара в месяц. Подписчики Discord Nitro получают два бонуса, включенные в стоимость Nitro, и 30% скидку на все остальные бонусы.
каналы
Discord запустил Stage Channels в мае 2021 года, функцию, аналогичную Clubhouse, которая позволяет использовать модерируемые каналы в прямом эфире, для аудиопереговоров, обсуждений и других целей, которые в дальнейшем могут быть доступны только для приглашенных пользователей или пользователей с билетами. Наряду с этим пользователи могут искать соответствующие открытые каналы Stage, соответствующие их интересам, с помощью инструмента Stage Discovery.
В августе Discord запустил Threads, временные текстовые каналы, которые можно настроить на автоматическое исчезновение. Это сделано для того, чтобы способствовать большему взаимодействию на Серверах.
Прямые сообщения
Прямые сообщения в Discord позволяют людям отправлять текстовые сообщения, обмениваться файлами, вести прямые трансляции и звонить другим в частном порядке за пределами серверов. Дополнительной функцией прямых сообщений Discord является возможность создавать группы сообщений до 10 пользователей. Это действует аналогично текстовому каналу сервера, с возможностью инициировать вызов одновременно для всех участников в группе прямого сообщения (на серверах люди могут только присоединяться к голосовым каналам, но не могут быть вызваны)
Профили пользователей
Пользователи регистрируются в Discord с адресом электронной почты и должны создать имя пользователя. Чтобы несколько пользователей могли использовать одно и то же имя пользователя, им присваивается четырехзначный номер, называемый «дискриминатором», с префиксом « # », который добавляется в конец их имени пользователя.
Как на уровне сервера, так и на уровне пользователя Discord позволяет пользователям подключать их к своей учетной записи Twitch или другой игровой службе.
Пользователи могут присвоить себе изображение профиля. Подписчики Discord Nitro, входящего в план монетизации Discord, могут использовать анимированные изображения профиля.
В июне 2021 года Discord добавил функцию, которая позволяет всем пользователям добавлять раздел «Обо мне» в свой профиль. Подписчики Discord Nitro также получают возможность загружать изображение баннера профиля.
Видеозвонки и стриминг
Цифровое распространение
Также в марте 2019 года Discord удалил цифровую витрину, вместо этого сосредоточившись на подписке Nitro и сделав прямые продажи через собственные серверы разработчика. В сентябре 2019 года Discord объявил, что прекращает предоставление бесплатных игр в октябре 2019 года, поскольку обнаружило, что в предлагаемые игры играет слишком мало людей.
Инструменты разработчика
В декабре 2017 года Discord добавила комплект для разработки программного обеспечения, который позволяет разработчикам интегрировать свои игры с сервисом, называемым «богатое присутствие». Эта интеграция обычно используется, чтобы позволить игрокам присоединяться к играм друг друга через Discord или отображать информацию о прогрессе игрока в его профиле Discord.
Документация по API Discord размещена на GitHub и отформатирована для отображения на их веб-сайте.
Инфраструктура
Все версии клиента поддерживают один и тот же набор основных функций; совместное использование экрана со звуком рабочего стола является эксклюзивной для Windows. Discord специально разработан для использования во время игр, так как включает такие функции, как низкая задержка, бесплатные серверы голосового чата для пользователей и выделенная серверная инфраструктура. Поддержка звонков между двумя и более пользователями была добавлена в обновлении от 28 июля 2016 г.
Программное обеспечение поддерживается одиннадцатью центрами обработки данных по всему миру, чтобы снизить задержки с клиентами.
Монетизация
Хотя само программное обеспечение предоставляется бесплатно, разработчики исследовали способы его монетизации с потенциальными вариантами, включая платные параметры настройки, такие как смайлики или стикеры. Разработчики заявили, что, хотя они будут искать способы монетизировать программное обеспечение, оно никогда не потеряет свои основные функции.
Discord начал тестирование цифровых стикеров на своей платформе в октябре 2020 года для пользователей в Канаде. Большинство стикеров стоят от 1,50 до 2,25 доллара и являются частью стратегии монетизации Discord. Подписчики Discord Nitro получили бесплатный набор стикеров «What’s Up Wumpus» с изображением талисмана Discord, Wumpus.
Прием
В 2021 году у Discord было не менее 350 миллионов зарегистрированных пользователей на своих веб-платформах и мобильных платформах. Его использовали 56 миллионов человек каждый месяц, отправляя в общей сложности 25 миллиардов сообщений в месяц. К июню 2020 года компания сообщила, что у нее было 100 миллионов активных пользователей каждый месяц. По состоянию на 2021 год у сервиса более 140 миллионов активных пользователей в месяц.
Споры
У Discord были проблемы с враждебным поведением и злоупотреблениями в чатах, при этом некоторые сообщества чат-серверов подвергались «набегам» (захват сервера большим количеством пользователей) другими сообществами. Это включает наводнение спорными темами, связанными с расой, религией, политикой и порнографией. Discord заявил, что планирует внести изменения, которые «избавят платформу от проблемы».
Discord приобрел популярность с помощью альтернативных правых из-за псевдонимности и конфиденциальности, предлагаемых сервисом Discord. Аналитик Киган Хэнкес из Южного юридического центра по борьбе с бедностью сказал: «Быть лидером этого [альтернативного правого] движения, не участвуя в Discord, довольно неизбежно». В начале 2017 года генеральный директор Джейсон Ситрон заявил, что Discord знает об этих группах и их серверах. Citron заявил, что серверы, которые были уличены в незаконной деятельности или нарушении условий обслуживания, будут отключены, но не раскрыл никаких примеров.
27 января 2021 года Discord заблокировал сервер r / WallStreetBets во время короткого сжатия GameStop из-за «ненавистнического и дискриминационного контента», который пользователи сочли спорным. Через день Discord разрешил создать еще один сервер и начал помогать с модерацией на нем.
Discord как корпоративный мессенджер и не только
Хочу рассказать про использование мессенджера Discord как основного средства коммуникации в команде. Опыт может быть полезен другим командам, использующим бесплатные мессенджеры, а также всем, кто ищет пути повышения эффективности использования мессенджеров.
Discord – программа странная и выдающаяся одновременно. Почему? Хотя бы потому, что про способы работы в Discord получилась целая статья.
Что-то пошло не так
В данной статье я рассматриваю исключительно мессенджеры, у которых основной функционал доступен бесплатно. Да, существуют прекрасные платные программы, но они за рамками данной статьи, даже если имеют бесплатный урезанный режим.
Обычные мессенджеры устроены так, чтобы работать «из коробки» и без всякого администрирования. Это вполне здравый подход, обеспечивающий низкий порог вхождения: просто создали групповой чат и общаемся в нём. По-другому эти мессенджеры не могут, так как сложные процедуры настройки отпугнут основную аудиторию. Но, как обычно, низкие начальные вложения оборачиваются высокими эксплуатационными издержками. Какие проблемы имеем в итоге.
Разделение по темам. Чем больше пользователей в группе, тем больше количество обсуждаемых тем. Большинство тем интересны ограниченному числу пользователей группы. Подход здорового человека заключается в том, чтобы создавать тематические группы и включать в них только тех, кому тема интересна – такая изоляция уменьшает «информационный шум» от ненужного контента. Но на практике это приводит к полному хаосу. Например, имеем 10 чатов по работе, 4 чата детского сада, 3 чата многоквартирного дома и так далее. И всё это в одном пространстве имён, поэтому мы начинаем путаться в чатах. Они уползают вниз списка, забываются, потом создаются дубликаты забытых чатов, но туда забывают добавить всех пользователей. Если же количество участников примерно от полсотни и выше, то никакие параллельные чаты уже не создаются – слишком сложно поддерживать актуальный список участников. Ведется один супер-чат, содержащий все вопросы жизни, вселенной и всего такого. Результат: большие группы в мессенджерах становятся «токсичными»: контент неинтересен из-за большого количества мусора, мы присутствуем в группах только из-за необходимости.
Избыточные нотификации. Каждому знакома ситуация, когда нам приходит слишком большое количество нотификаций различных мессенджеров. Рассмотрим пример. Пусть, у нас команда из 50 человек и каждый пишет в общий чат 5 сообщений в день. Тогда каждый получит по 50*5=250 нотификаций. Если считать, что для просмотра сообщения мы отвлекаемся на 30 секунд, то 250 нотификаций съедают 250*30=7500 секунд, что составляет 2 часа! А всю команду нотификации отвлекают на время 7500*50=375000 секунд или 104 часа! Вдумайтесь: 104 человеко-часа в день или 13 человеко-дней каждый день! Это 26% ресурсов команды. Такие большие числа получаем потому, что количество людей (50 человек) в чате входит в итоговую формулу квадратично (каждый нотифицирует каждого):
В реальности все несколько лучше, так как сообщения обычно появляются и читаются пачками. Но суть проблемы понятна: квадратичный рост потерь времени команды на нотификации. Кэп подсказывает два способа решения, но оба плохие:
Discord: начало
Теперь переходим к Discord. Прежде всего заметим, что в Discord есть два режима или, скорее, «вида»: назовем их «обычный» и «сервер». Они существуют параллельно и имеют разные цели. В «обычном» виде Discord – это такой же обычный мессенджер, как и все остальные. Даже с более ограниченными возможностями, чем тот же Skype:
Сервер
Чтобы работать с сервером, надо этот самый сервер иметь. Для определенности будем считать, что мы сотрудники стартапа «Рога и Копыта», поэтому наш сервер будет называться «РК». Создаем сервер путем нажатия на кнопку с большим знаком «+». Сервер – это уютное место, где будет проходить всё наше корпоративное общение (кроме 1-на-1, которое в «обычном» виде, вне сервера). Пользователи должны присоединиться к серверу по приглашению.
В левой панели сразу видим две новые сущности:
Теперь переходим к инструментам Discord, которые делают его эффективным для командной работы. Прежде всего это роли. Смысл в том, что мы настраиваем права доступа не для конкретных пользователей, а для ролей и даём эти роли людям. Список разных прав, которые может иметь роль, внушает: целых 32 пункта. Кроме того, у каналов мы настраиваем, какие права имеет роль в канале: чтение, написание, удаление сообщений и т.п.
Какие роли создавать – решаем сами. Роль соответствует некоему типичному набору действий пользователя. Например, на нашем сервере сделаем такие роли:
Каналы
Текстовые каналы на нашем сервере могут быть, например, такие:
Упоминания
Упоминания – ещё одна вещь, которая делает работу в Discord эффективной. Это когда мы пишем сообщение в текстовый канал, упоминая аккаунт с помощью специального синтаксиса:
Можно упомянуть роль:
А вот так можно упомянуть всех, кто есть в канале (любой из этих вариантов работает):
Тут вы можете сказать: «Ха! В Skype тоже можно упомянуть через @имя. И зачем упоминать всех, какой в этом смысл? Ведь сообщение и без того обращено ко всем».
Действительно, в Skype можно написать Vasya.Pupkin. Но в Skype вся польза от упоминания в том, что во всплывающем уведомлении будет добавлено, что «вас упомянули». Наверное, в этом есть смысл, но в Discord сделали лучше. Прежде всего заметим, что в Discord есть два вида нотификаций о новых сообщениях:
Поток сообщений в текстовых каналах не требует внимания, пока пользователь не упомянут.
Легко видеть, что такой подход решает описанную выше проблему избыточных нотификаций, если немного обучить пользователей правильному стилю работы. Например, такому:
И таких упоминаний в реальности очень мало, не более 2% сообщений. Обычно упоминают here когда задают вопрос не зная, кто конкретно может на него ответить. Все отвлекаются от работы и читают вопрос. Дальше люди, которым есть что сказать, остаются вести дискуссию, остальные возвращаются к своим делам. И не бойтесь, что here будет слишком много: лишний раз писать here в сообщении просто лень!
Также упоминаний не будет слишком мало. Хотя бы потому, что человек сам заинтересован позвать правильных людей упоминанием в своем посте, чтобы достичь нужного ему результата. Короче, всё это самобалансируется и получается норм. Что с остальными 98% сообщений? Их тоже надо читать, но не срочно. В удобное время с чашкой кофе прочитываем весь поток сообщений. Такое отложенное прочитывание не приводит к огромным потерям времени, как описано в начале статьи. Ведь читаем подряд, не переключая свой мозг между сообщениям и другими делами. И, что самое главное, сообщения не отрывают нас от работы.
Итого: проблема избыточных нотификаций полностью решена, и при этом обеспечено быстрое реагирование на важные сообщения.
А минусы какие?
Технические ограничения в Discord.
Стандартные возможности
В этой статье рассмотрены принципиальные отличия Discord от других мессенджеров, позволяющие значительно увеличить эффективность работы. А вот список мелких фич, которые типичны для мессенджеров и не являются чем-то выдающимся:
А еще есть.
Боты и возможность написания своих ботов. Но это уже совсем другая тема.
Итого
Discord – это в некотором роде мессенджер 2.0, имеющий средства для эффективного общения больших групп пользователей, в том числе и в корпоративном применении. Создатели программы не побоялись выйти за рамки парадигмы обычных мессенджеров – и получилось неплохо. И в то же время Discord не конкурент обычным мессенджерам, у него своя экологическая ниша. Ведь у простых пользователей, не айтишников и не геймеров, наступает шок и трепет от необходимости администрирования и непохожести на привычные программы.
Надеюсь, информации в статье достаточно, чтобы решить, надо вам это или нет.
UPD1: Комментарий JustDont:
Перед тем как советовать дискорд для контор, нужно обязательно упоминать о том, что вообще-то нужно внимательно честь Discord Privacy Policy, в которой вполне себе английским или русским по белому написано, что Discord собирает всё, что вы ему отправляете. В том числе и всю вашу переписку, обратите внимание. И совершенно не обещает её шифровать и вообще как-то беречь её конфиденциальность от самих себя. И есть ряд сценариев, в которых эта собранная информация вполне может уйти куда-то, куда вам не очень хочется, чтоб она ушла. И нужно оценивать эти риски.