okdb — библиотека для совместной работы

от автора

Организация совместной работы в приложении всегда кажется большим геморроем и отметается на этапе планирования большинства приложений. По сути, сейчас принято пилить реалтайм-взаимодействие только там, где это часть обязательного функционала, в качестве дополнительной фишки его не встретить. Разработчики из Anwendo хотят исправить эту ситуацию и представляют okdb — библиотеку и сервис, позволяющие снять с себя львиную долю проблем и сложности, связанных с организацией совместных рабочих сессий.

Реализация

Фронтенд подключается через Realtime API и позволяет синхронизировать курсоры, имена и фокус пользователей с бэкэндом на GraphQL.

Realtime API работает на вебсокетах, пересылая только изменения, внесённые пользователем. Синхронизацией всех поступающих изменений занимается бэкэнд-сервис. В доках можно почитать API reference.

GraphQL пока умеет работать только с PostgreSQL с полным покрытием таблиц, индексов и связей. Остальные базы на подходе.

Собираем пример

Нам потребуется node.js и, конечно, git.

	git clone https://github.com/okdb-io/okdb-sample-todo.git  	cd okdb-sample-todo/backend 	npm install 	npm run server 

Сервер запустится на 7899 порту. Кстати, исходник здесь.

Собственно запуск сервиса происходит здесь:

	const OkdbServer = require("okdb-server");  	// Create and start server on 7899 port by default. 	// CORS is disabled by default, let's enable it, 	// because demo frontend and backend run on different ports on localhost 	const options = { 	    cors: { 	        enabled: true 	    } 	} 	const okdb = new OkdbServer(options);  	{...}  	// sample authentication, e.g. should validate your own auth token 	okdb.handlers().auth((token) => { 	    if(token === "12345") { 	        return { id: "1", name: "User"} 	    }     	    return null; 	}); 

Собираем фронт:

	cd okdb-sample-todo/frontend 	npm install 	npm start 

Код App.js здесь.

Теперь на 3000 можно открыть приложение в нескольких браузерах и посмотреть на магию.

Если лень билдить всё вручную, можно воспользоваться готовыми демками на codesandbox:

Бэк

Также доступны и более функциональные демки:

Таблица

Лагучий графический редактор

Текстовый редактор

Заключение

odkb пока не вышел из ниши начинающих продуктов, но в нише синхронизации у него есть все шансы закрепиться. Сейчас он полностью опенсорсный, всё доступно в репозиториях проекта. В дальнейшем разработчики собираются монетизироваться через продажу облачной реализации и поддержку. В планах допил интеграций с основными БД и контейнеризация сервиса, ну и новые фичи, конечно.


На правах рекламы

Серверы для размещения сайтов и любых других задач — это про наши эпичные! Все серверы защищены от DDoS-атак, автоматическая установка удобной панели управления VestaCP. Лучше один раз попробовать.

ссылка на оригинал статьи https://habr.com/ru/company/vdsina/blog/522036/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *