عن المشروع

Redpanda Connect هو معالج تدفقات لنقل البيانات بين مجموعة واسعة من المصادر والأحواض، مع الإثراء والتحويل والتصفية على طول المسار. تُعرَّف خطوط الأنابيب في ملف YAML واحد، لذا يسهل قراءة طوبولوجيا التدفق وإصدارها ومراجعتها. الخصائص الرئيسية الموصوفة في README: - خطوط أنابيب تصريحية: تنسجم الطوبولوجيا بأكملها في ملف YAML واحد. - التسليم مرة واحدة على الأقل افتراضياً، باستخدام نموذج معاملات داخل العملية دون حالة محفوظة على القرص، وهو ما يقول المشروع إنه يصمد حتى عبر الأعطال أو تلف القرص أو أعطال الخادم الأخرى. - كتالوج كبير من الموصلات يغطي خدمات السحابة ووسطاء الرسائل وقواعد البيانات وHTTP. تشمل الأمثلة المذكورة AWS (DynamoDB، Kinesis، S3، SQS، SNS)، وAzure (Blob، Queue، Table)، وGCP (Pub/Sub، Cloud Storage، BigQuery)، وKafka، وNATS (JetStream، Streaming)، وNSQ، وMQTT، وAMQP 0.91 (RabbitMQ)، وAMQP 1، وRedis، وCassandra، وElasticsearch، وHDFS، وHTTP (خادم، عميل، websockets)، وMongoDB، وSQL (MySQL، PostgreSQL، ClickHouse، MSSQL). - موصلات التقاط تغييرات البيانات من الدرجة الأولى لـ Postgres وMySQL وMongoDB وOracle وMSSQL، بحيث تتدفق تغييرات قاعدة البيانات عبر خطوط الأنابيب كأحداث. - Bloblang، لغة تعيين مصممة لبيانات التدفق، تُستخدم للتحويل والتعيين. - تشغيل ملائم للسحابة: بلا حالة وقابل للتوسع أفقياً، مع قياسات وتتبع مدمجين. يعرض مثال في README بث تغييرات Postgres إلى جداول Apache Iceberg على S3، مع إنشاء جدول Iceberg واحد لكل جدول مصدر، ويعرض خيارات تطور المخطط. تشمل خيارات التثبيت تنزيل ملف zip لنظام Linux، وHomebrew على macOS، وصورة Docker. يعمل كملف ثنائي ثابت واحد أو صورة حاوية، ويُستدعى بالأمر `rpk connect run ./config.yaml` أو عبر Docker مع ملف إعداد مُثبَّت أو تجاوزات مضمّنة. المراقبة: `/ping` هو فحص حيوية يعيد دائماً 200، و`/ready` هو فحص جاهزية يعيد 200 بمجرد توصيل المدخل والمخرج، وإلا يعيد 503. يمكن كشف القياسات إلى Statsd وPrometheus ونقطة نهاية HTTP بصيغة JSON وخلفيات أخرى. تُصدر آثار OpenTelemetry أصلاً لرؤية شاملة من طرف إلى طرف لخط الأنابيب. قابلية التوسعة والتطوير: تُوثَّق واجهات Go العامة لبناء إضافات مخصصة، مع مستودع إضافة نموذجي. يتطلب البناء من المصدر إصدار Go مدعوماً حالياً ويستخدم `task build:all`. تُستبعد المكونات التي تربط مكتبات C خارجية (مثل zmq4) افتراضياً ويمكن تمكينها بوسم البناء `x_benthos_extra`. ينتج Dockerfile متعدد المراحل صورة دنيا مبنية على scratch. يستخدم المشروع golangci-lint وgofumpt، مع أهداف `task fmt` و`task lint` و`task test`؛ تُشغّل معظم اختبارات التكامل حاويات Docker وتُتخطى بواسطة مهمة الاختبار الافتراضية.