À propos du projet
Spate est un framework ETL de streaming pour Rust qui offre une sémantique de livraison at-least-once. Il est conçu comme une alternative aux processeurs de flux généralistes et aux boucles de consommation écrites à la main : les transformations sont des fonctions Rust ordinaires compilées directement dans le pipeline, tandis que les garanties de livraison, la contre-pression, le checkpointing, le rééquilibrage et le drain à l'arrêt sont pris en charge par le framework.
Un pipeline s'exécute en quatre étapes. Extract utilise un consommateur par processus et répartit les partitions sur des threads épinglés au CPU sous forme de voies zero-copy. Transform enchaîne les closures avec état dans une seule boucle sur des enregistrements empruntés, sans allocation par enregistrement. Load fragmente et réplique les sinks de manière asynchrone, en utilisant des files bornées par fragment comme signal de contre-pression. Observe n'avance le watermark de la source qu'en aval des données acquittées comme durables par le sink, de sorte que les commits suivent la livraison.
Les connecteurs sont fournis sous forme de crates optionnelles conditionnées par des fonctionnalités : source et sink Kafka, sink ClickHouse avec jetons de déduplication et rotation de réplicas, source de backfill S3 coordonnée, désérialisation Avro et JSON, attribution de travail multi-instance, et une source de génération de données synthétiques pour les démos et les tests. Rien n'est activé par défaut, de sorte que le code des connecteurs inutilisés n'est pas compilé.
Le projet comprend un guide utilisateur, une référence API, des invariants numérotés, des enregistrements de décisions architecturales, une documentation des métriques et des exemples Docker/Kubernetes. Les tests couvrent des tests de propriétés basés sur proptest, la modélisation de concurrence loom, des exécutions librdkafka MockCluster et des tests d'intégration basés sur des conteneurs. Le projet est en développement initial actif avec des API 0.x instables et est sous licence Apache-2.0.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.