N2O FAQ

Этот документ я решил начать, благодаря вопросу на cyberforum.ru. Спасибо большое, что проявляете интерес к N2O!

Где посмотреть работающий проект на N2O?

Если рассматривать проекты, на которые было потрачено более 1 миллиона долларов, то можно выделить два проекта: Депозиты ПриватБанк и Криптомессенджер NYNJA, как улучшеный Upwork со своей экономикой.

Первый проект носит более корпоративный характер и является, по существу, расширеным финансовым модулем N2O: Предприятия в приложении к банковской сфере. Паспорт проекта находится здесь, посвящённая проекту статья — здесь.

Второй же — более открытый как продукт, и предоставляет Open Source протокол, имплементация которого в продакшине выполнена на N2O поверх шины MQTT на базе N2O CHAT. В качестве MQTT сервера используется эрланг сервер EMQ авторства Feng Lee. Мы выпустили свою версию упаковки этого сервера, которую вы можете использовать как зависимость из языков Erlang и Elixir. Клиенты к этому серверу написаны на следующих языках: Swift (App Store), Kotlin (Google Play), TypeScript+React (Web App), Elixir (s2s).

Как осуществлена поддержка базы данных Mnesia в стеке N2O?

Поддержка баз данных в N2O выполнена с помощью слоя абстракции KVS. Этот слой определяет интерфейс деревьев, списков и прямое встраивание в BTree-индекс типизированных записей. Раньше набор баз данных включал MongoDB, Redis, Mnesia, SQL, Riak, теперь он значительно сократился. Сейчас осталась поддержка Mnesia, RocksDB (open source) и Cassandra (closed source).

Не смотря на то, что архитектура цепочек KVS достаточно примитивна и описана в недавней статье, KVS не стесняется задействовать все фичи нижележащих баз, если они нужны, так вы можете, например, использовать QLC запросы поверх нашей модели цепочек, вы также можете использовать все виды таблиц: ram_copies, disc_copies, disc_only_copies,. множественные индексы и любую другую нижележащую функциональность. Ранние версии KVS (ПриватБанк), поддерживали автоматическую ротацию таблиц, что позволяло обходить ограничение в 4ГБ на disc_only_copies таблицах, и накапливать терабайты на компьютерах с ограниченным объемом ОЗУ. Позже из-за сложности этого решения мы отказались и вернули размер в 500 строк кода для KVS.

Где можно посмотреть на официальные примеры N2O приложений?

В рамках проекта N2O: Предприятие вы можете скачать и установить любой модуль предприятия, который выполнен с использованием N2O стека. Все веб клиенты этих приложений написаны на N2O, NITRO и FORM. Я бы выделил текущий хедлайнер в виде PLM модуля, к которому существует достаточно свежая документация, в которой детально разбирается таксономия модуля и шаги которые необходимо выполнить для его воссоздания с нуля. Каждый инстанс такого модуля запущен на нашем GCP облаке и вы можете поклацать и пощупать примеры админок ERP модулей прямо в шапках сайтов по кнопке ADMIN. Следует учесть, что в нашей экосистеме мы одинаковое внимание уделяем Elixir и Erlang языкам, поэтому список всех приложений которые доступны для Elixir вы можете увидеть на сайте o7.network — версии N2O: Предприятия для одноименного языка.

Где находится официальная документация?

Вся документация для разработчиков находится на сайте n2o.dev. Cюда входят: 1) спецификации; 2) статьи; 3) анонсы релизов; 4) книги; 5) туториалы. Мы просто собрали всю официальную документацию по библиотекам и выложили её здесь.