このプロジェクトについて

Spateは、at-least-once配信セマンティクスを提供するRust向けのストリーミングETLフレームワークです。汎用ストリームプロセッサや手書きのコンシューマループの代替として設計されており、変換は通常のRust関数としてパイプラインに直接コンパイルされ、配信保証、バックプレッシャー、チェックポイント、リバランス、シャットダウン時のドレインはフレームワークが処理します。 パイプラインは4つのステージで動作します。Extractはプロセスごとに1つのコンシューマを使用し、パーティションをゼロコピーレーンとしてCPU固定スレッドにファンアウトします。Transformはステートフルなクロージャを、レコードごとのアロケーションなしで借用レコードに対する単一のループにチェーンします。Loadはシンクを非同期にシャーディングおよびレプリケートし、シャードごとの有界キューをバックプレッシャーシグナルとして使用します。Observeは、シンクによって永続的であると確認されたデータの背後でのみソースウォーターマークを進めるため、コミットは配信に遅れて追従します。 コネクタはオプションのフィーチャーゲート付きクレートとして提供されます。Kafkaソースとシンク、重複排除トークンとレプリカローテーションを備えたClickHouseシンク、協調型S3バックフィルソース、AvroとJSONのデシリアライゼーション、マルチインスタンスの作業割り当て、デモとテスト用の合成datagenソースがあります。デフォルトでは何も有効化されないため、未使用のコネクタコードはコンパイルされません。 プロジェクトには、ユーザーガイド、APIリファレンス、番号付き不変条件、アーキテクチャ決定記録、メトリクスドキュメント、Docker/Kubernetesの例が含まれています。テストは、proptestベースのプロパティテスト、loom並行性モデリング、librdkafka MockCluster実行、コンテナベースの統合テストをカバーしています。プロジェクトは活発な初期開発段階にあり、APIは不安定な0.xであり、Apache-2.0の下でライセンスされています。