Начните с совместимого каркаса и небольшого критичного вертикального сценария: маршрут, доступ, API и UI вместе. Универсального порядка «сначала все формы» нет.
Различайте уровни: HTTP/WebSocket — протоколы, REST — архитектурный стиль, GraphQL — язык запросов и модель API. Они не являются равнозначными альтернативами на одном уровне.
Переход на Vue 3 затрагивает создание приложения, совместимость библиотек и изменившиеся API. Pinia и Composition API часто внедряют одновременно, но они не обязательны для самого перехода.
Запустите N асинхронных работников, которые берут следующий индекс из общей очереди. Результат записывайте по исходному индексу, а не по порядку завершения.
Сообщению нужны серверный ID, ID чата и отправителя, тип, содержимое, время создания и версия изменения. client_message_id связывает повторный запрос с тем же результатом.
Отдавайте компактную проекцию списка с пагинацией и отдельный ресурс подробностей. Загружайте данные тогда, когда они нужны экрану, не возвращая весь каталог целиком.
Разделите постоянное хранение истории, доставку событий и локальное состояние клиента. Используйте устойчивые ID сообщений, идемпотентную отправку и восстановление по серверному курсору.