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 порту. Кстати, исходник здесь: github.com/okdb-io/okdb-sample-todo/blob/master/backend/server.js

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

	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 здесь: github.com/okdb-io/okdb-sample-todo/blob/master/frontend/src/App.js

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

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



Бэк



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

Таблица



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



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



Заключение


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



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


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

Источник: https://habr.com/ru/company/vdsina/blog/522036/


Интересные статьи

Интересные статьи

Мне было необходимо делать 2 раза в сутки бэкап сайта на «1С-Битрикс: Управление сайтом» (файлов и базы mysql) и хранить историю изменений за 90 дней. Сайт расположен на VDS под уп...
По запросу R или Python в интернете вы найдёте миллионы статей и километровых обсуждений по теме какой из них лучше, быстрее и удобнее для работы с данными. Но к сожалению особой пользы все эти с...
Если вы последние лет десять следите за обновлениями «коробочной версии» Битрикса (не 24), то давно уже заметили, что обновляется только модуль магазина и его окружение. Все остальные модули как ...
Здравствуйте. Я уже давно не пишу на php, но то и дело натыкаюсь на интернет-магазины на системе управления сайтами Битрикс. И я вспоминаю о своих исследованиях. Битрикс не любят примерно так,...
Мы публикуем видео с прошедшего мероприятия. Приятного просмотра.