Система управления задачами с аналитикой
SPA для команд: роли, канбан, графики продуктивности в реальном времени
Совместное рисование и заметки на Canvas через WebSocket
Сделать онлайн-доску для брейншторма: несколько человек одновременно рисуют, клеят стикеры, двигают блоки — и всё видят изменения друг друга без перезагрузки.
При частой отрисовке в сокет летели сотни событий в секунду — сервер захлёбывался, а у клиентов появлялся лаг. Отдельная задача — восстановление состояния доски для того, кто подключился позже, и корректная работа при обрыве связи.
Ввёл батчинг событий: координаты буферизуются и уходят пакетом раз в 40 мс. Состояние комнаты держу в Redis, историю операций — в PostgreSQL, поэтому новый участник получает снапшот одним запросом, а не тысячу событий. Добавил переподключение с экспоненциальной задержкой и очередь неотправленных действий на клиенте.
Доска стабильно держит одновременных участников без заметной задержки, трафик после батчинга упал примерно в 8 раз, а после обрыва интернета рисунок не теряется — догружается при реконнекте.
Впервые работал с WebSocket и Redis всерьёз. Понял, что сеть — это не «просто отправить данные»: без буферизации и продуманного реконнекта красивый прототип разваливается на первом же плохом Wi-Fi.
SPA для команд: роли, канбан, графики продуктивности в реальном времени
Каталог, корзина, оплата и блок «вам может понравиться»
Тот самый сайт, который вы сейчас читаете
Комментарии доступны зарегистрированным пользователям.