# NodeJS Мессенджер ## Основные требования к логике работы приложения: 1. Реализовать при помощи *любой* БД хранение последних 20 сообщений, которые были отправлены пользователями сайта > Реализовывать регистрацию или какую бы то ни было идентификацию пользователя не надо 2. Сообщения должны приходить по WebSocket всем активным пользователям сайта в режиме live в виде "дельты" > Как только произошел POST запрос, это же сообщение рассылается всем активным пользователям 3. Отправку сообщения отдельным POST запросом > Других REST запросов быть на сайте не должно 4. Как только развернулся клиент, он должен установить WebSocket соединение с backend-ом и запросить snapshot всех актуальных сообщений на данный момент и впоследствии их редактировать с каждой новой "дельтой" ## Требования к оформлению: 1. Использовать **React** + *любые другие библиотеки* 2. *Дизайн может быть простым* и даже минималистичным, но *с логичным расположением* кнопок и появлением сообщений 3. Любыми анимациями или улучшенным визуалом можно пренебречь, но будет плюсом, если такое будет реализованно ## На что будет обращено внимание: - ***Реализация REST/WS части*** - Отказоустойчивость ws соединения > То есть сообщения не должны теряться. Не должно быть такого, чтоб была необходимость обновлять сайт, чтоб увидеть новые сообщения - Добавление/удаление сообщений на бэке должно быть выполнено за O(1) по времени - Вещание должно быть выполнено за O(N) N - кол-во активных слушателей