replication-rs / airbyte-replication-operator-external

An implementation of Airbyte Protocol in Rust

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Airbyte Replication Operator

An implementation of Airbyte Protocol in Rust aiming to be simple, modular, extensible and resource efficient.

⭐⭐⭐Unstable and Work in progress⭐⭐⭐

Please try at your own risk. Feedback is much appreciated.

This is solely a personal project of Harsha Teja Kanna and not affiliated with Airbyte Inc. which owns Airbyte.

Note: This is NOT a Kubernetes Operator for Airbyte, only an independent implementation of the Airbyte Protocol.

Introduction

This is the partial mirror repository for an implementation of Airbyte Protocol data plane.

Why? Check the architecture reasoning here ADR

Why Rust? Check the decision record here ADR

Introduction blog: https://ekalavya.dev/why-and-how-i-implemented-airbyte-protocol-in-rust

Upcoming blog series here

Note: It will become the canonical repository once the implementation is ready(currently, in a rough state) for public review and contributions.

Roadmap

  • Standalone data replication Driver from Airbyte Source to Destination
  • Pluggable State management layer
  • Pluggable progress Tracking and Monitoring
  • Pluggable OCI Container/VM integration (containerd, Docker, Podman, Youki, Firecracker VM, ECS etc. )
  • Multiple execution models (parallel/serial)
  • Feature parity with official Airbyte Platform ( only data plane components )
    • Mappers
    • Validators
    • Normalization/dbt? (Currently not in scope)
    • Operators/Transformers? (Currently not in scope)
  • Rust CDK (Connector Development Kit) 🚀
  • Kubernetes Operator
  • CLI
  • Airbyte Desktop, Yes! 🚀
  • Benchmarks
  • Usage Examples
  • KubeVela integration
  • 100% Airbyte Protocol compatability and acceptance tests
  • Automated tests
  • CI
  • Deployment and operations documentation
  • Stable (GA) releases
  • Setup SLSA3 Provenance for release artifacts.
  • FAQs
  • Strictly keep the driver binary to minimal size (ideally under 10MB). Very important 😃

Documentation

Upcoming Blogs/Demos

High level Architecture view

Airbyte Replication Operator

Low level Architecture view

Airbyte Replication Driver

About

An implementation of Airbyte Protocol in Rust


Languages

Language:CUE 89.0%Language:Rust 5.9%Language:Shell 3.3%Language:Dockerfile 1.8%