Документация v1.4

Руководство
разработчика

Полный справочник по API, архитектуре модулей и интеграции Modly в ваш CI/CD пайплайн. Изучите, как оркестрировать микросервисы с помощью кода и визуального редактора.

v1.4.2 Обновлено: 12.10.2023
import { Modly } from '@modly/sdk';

const client = new Modly({
  apiKey: process.env.MODLY_KEY
});

await client.pipeline
  .read('kafka:orders')
  .transform('validate_schema')
  .write('db:postgres');

Быстрый старт

Интеграция Modly занимает менее 5 минут. Платформа предоставляет SDK для Node.js, Python и Go, а также REST API для управления модулями.

1. Установка SDK

$ npm install @modly/sdk
# или
$ pip install modly-client

2. Инициализация

Создайте файл конфигурации .modly.json в корне вашего проекта. Платформа автоматически обнаружит его при первом запуске.

Интерфейс редактора кода Modly с подсветкой синтаксиса
Hot Reload

Архитектура модулей

Modly использует событийно-ориентированную архитектуру. Каждый модуль — это изолированная функция с четко определенными входами (Inputs) и выходами (Outputs).

📥

Triggers (Триггеры)

Инициаторы потока. Поддерживают HTTP Webhooks, Kafka Topics, Redis Streams и Cron задачи. Триггеры нормализуют входящие данные перед передачей в логику.

⚙️

Logic (Логика)

Вычислительное ядро. Модули обработки данных, трансформации JSON, вызовы внешних API и машинное обучение. Изолированные песочницы для безопасности.

📤

Actions (Действия)

Финальные узлы. Запись в базы данных (PostgreSQL, MongoDB), отправка уведомлений (Slack, Email) или триггеринг других пайплайнов.

Примеры кода (SDK)

Используйте типизированные SDK для управления пайплайнами прямо из вашего репозитория (Infrastructure as Code).

Python SDK v1.2
import modly

async def process_order(event):
  data = event.payload
  if data.total > 100:
    await modly.slack.notify(
      channel='#vip'
    )
Node.js SDK v1.2
const { Pipeline } = require('@modly/sdk');

Pipeline.on('user.signup', async (ctx) => {
  const user = ctx.data;
  await ctx.db.users.insert(user);
  return { status: 'active' };
});
Go SDK v1.2
import "github.com/modly/go"

func SyncInventory(evt modly.Event) {
  client := modly.NewClient()
  err := client.Trigger('warehouse', evt)
  if err != nil { log.Fatal(err) }
}

Нужна помощь с интеграцией?

Наши инженеры помогут настроить сложные пайплайны и оптимизировать производительность.

Связаться с поддержкой Присоединиться к Discord