Telepat — это открытая платформа и набор API для реализации систем синхронизации данных в реальном времени между клиентскими приложениями и сервером. Проект ориентирован на разработку чат-приложений, совместных редакторов и других интерактивных сервисов, требующих мгновенной доставки изменений, управления подписками и согласованного состояния между несколькими участниками. Telepat реализует модель объектов и подписок, позволяющую клиентам получать выборочные обновления и публиковать изменения через унифицированный интерфейс.
Исторически Telepat возник как ответ на потребность в простом и расширяемом решении для realtime-синхронизации вне привязки к конкретной инфраструктуре. Платформа сочетает в себе механизмы подписки на наборы данных, трансляции событий и управления правами доступа, предоставляя серверные и клиентские библиотеки для разных языков и сред выполнения. В общественной документации проект описывается как гибкая система, допускающая развертывание как в облачной, так и в локальной инфраструктуре.
- Realtime-синхронизация: поддержка передачи изменений в режиме реального времени с минимальной задержкой между источником и подписанными клиентами.
- Модель подписок: селективная подписка на наборы данных и фильтры для получения только релевантных обновлений.
- Управление состоянием: хранение и согласование текущего состояния объектов с возможностью восстановить состояние при подключении клиента.
- Автоматическое вещание событий: система событий для оповещения о создании, изменении и удалении записей.
- Клиентские библиотеки: готовые SDK для интеграции с фронтенд- и мобильными приложениями, упрощающие обработку подписок и обновлений.
- Интеграция с бекендом: механизмы для интеграции с существующими базами данных и бизнес-логикой через плагины или промежуточные адаптеры.
- Безопасность и доступ: возможности для настройки прав доступа и управления аутентификацией на уровне подписок и операций с данными.
- Масштабируемость: архитектурные подходы и рекомендации для горизонтального масштабирования и балансировки нагрузки в распределённых развертываниях.
- Форматы данных: поддержка передачи структурированных данных в форматах, совместимых с современными веб- и мобильными стек-технологиями.
- Открытый характер: открытая документация и возможность внесения вкладов, при этом конкретные детали реализации и наборы функций могут отличаться между версиями и форками.