Open Source - MIT

Mako

Pipelines de donnees en temps reel

Framework declaratif pour orchestrer des pipelines de donnees. Configurez vos sources, transforms et sinks en YAML — Mako s'occupe du reste.

go install github.com/Stefen-Taime/mako@latest
GitHub

Fonctionnalites

Declaratif

Tout se configure en YAML. Pas de code a ecrire pour les pipelines standards.

Temps reel

Support natif Kafka, CDC PostgreSQL et streaming HTTP.

Transforms WASM

Plugins Go/Rust/TinyGo compiles en WebAssembly pour des transformations performantes.

Observabilite

Metriques Prometheus, dashboards Grafana et alertes Slack integres.

Quick Start

# pipeline.yaml
source:
  type: http
  url: https://api.example.com/data
  format: json

transforms:
  - type: field
    operations:
      - rename: { from: "old_name", to: "new_name" }
      - drop: ["unused_field"]

sink:
  type: postgres
  connection: postgres://user:pass@host/db
  table: events
  mode: upsert

Sources

  • HTTP/REST APIs (pagination, OAuth2, rate limiting)
  • Fichiers JSON, CSV, Parquet (gzip)
  • Apache Kafka
  • PostgreSQL CDC (Change Data Capture)
  • DuckDB (requetes SQL embarquees)

Sinks

  • PostgreSQL, Snowflake, BigQuery, ClickHouse
  • S3, Google Cloud Storage
  • DuckDB, Kafka, stdout

Transforms

  • Enrichissement SQL via DuckDB
  • Plugins WASM (Go/Rust/TinyGo)
  • Validation de schema (Confluent Schema Registry)
  • Controles qualite des donnees
  • Masquage PII (SHA-256)
  • Operations sur champs (rename, drop, cast, flatten, deduplicate)

Orchestration

Moteur de workflows DAG avec execution parallele et quality gates SQL.

Licence MIT - Maintenu par mcsEdition

godatapipelineskafkayamlwasm

Go 1.21+ requis

En bref

Comment Mako orchestre-t-il un pipeline de données temps réel ?

Mako est un framework Go open source qui décrit des pipelines de données temps réel sous forme de fichiers YAML déclaratifs, sans code. Un pipeline Mako se compose de 3 sections : sources (Kafka, Change Data Capture sur Postgres ou MySQL, endpoints HTTP), transforms (modules WASM compilés depuis Rust, Go ou Python) et sinks (Kafka, S3, base relationnelle, webhook). À l'exécution, Mako bâtit un graphe orienté acyclique (DAG) en mémoire et applique le contre-pression automatique entre les étages — si un sink est lent, les sources ralentissent sans saturer la mémoire. Mako expose 14 métriques Prometheus standard (débit, latence p50/p95/p99, taille des files, erreurs par étage) et un panneau Grafana de référence est fourni. Le binaire pèse moins de 30 Mo et démarre en moins de 200 ms.

Quelle est la différence entre Mako, Kafka Streams et Airflow ?

Kafka Streams est une bibliothèque Java pour traiter du streaming dans une JVM, étroitement couplée à Kafka. Airflow et Dagster orchestrent des batchs planifiés, pas du flux continu. Mako se positionne dans l'espace intermédiaire : il traite du streaming en continu comme Kafka Streams ou Apache Flink, mais avec une définition déclarative en YAML — pas de compilation Java requise — et un binaire Go autonome qui tourne aussi bien sur un serveur dédié que dans un conteneur Kubernetes ou un edge node. Les transforms WASM permettent d'écrire la logique métier en Rust, Go, AssemblyScript ou Python compilé sans recompiler le moteur. Mako est distribué sous licence MIT sur GitHub et a été conçu pour les équipes de 1 à 5 ingénieurs qui ne veulent pas gérer un cluster Flink.

Questions fréquentes

Mako est-il une alternative à Kafka Streams, Flink ou Airflow ?

Mako se positionne entre Kafka Streams/Flink (streaming) et Airflow/Dagster (DAG). Il définit des pipelines temps réel en YAML, avec des transforms WASM et de l'observabilité Prometheus, sous licence MIT.

Quelles sources Mako supporte-t-il ?

Kafka, Change Data Capture (Postgres, MySQL) et HTTP comme sources ; transforms en WASM ; sinks configurables.

Mako — Framework de pipelines de données en temps réel | mcsÉdition