New to Kestra?
Use blueprints to kickstart your first workflows.
Automated Kestra gate validating binary Protobuf payloads against compiled descriptors with unknown-field enforcement and Slack failure alerts.
Validates binary Protocol Buffers (Protobuf) payloads against compiled FileDescriptorSet schemas before ingestion into data lakes or stream processors. By enforcing contract adherence with unknown-field rejection, this workflow prevents silent serialization failures and data corruption across downstream analytics pipelines.
stage_schema_and_payload task defines the canonical Protocol Buffers schema, compiles a binary FileDescriptorSet (.desc) using the Google protoc compiler, and prepares the binary event stream.decode_protobuf_stream task (io.kestra.plugin.serdes.protobuf.ProtobufToIon) deserializes the binary payload using the compiled schema descriptor and verifies message structure. With errorOnUnknownFields: true, any unauthorized schema mutations immediately trigger a task exception.evaluate_contract_compliance flow control task evaluates whether the decoded record volume meets the minimum threshold (inputs.min_expected_records).alert_contract_breach dispatches an urgent alert to Slack with execution diagnostics, followed by fail_compliance_gate to block downstream processing.convert_ion_to_json transforms the internal Amazon Ion representation into newline-delimited JSON ready for warehouse loading.audit_compliance_certification task emits a structured compliance event recording the validated type, record count, and artifact URI.ProtobufToIon plugin handles high-speed streaming binary decoding without writing boilerplates.If) isolates invalid payloads before they pollute production warehouses.python:3.11-slim with network access to fetch protobuf compiler tools.SLACK_WEBHOOK_URL: Slack Incoming Webhook URL used to dispatch contract breach notifications (required).SLACK_WEBHOOK_URL.company.data.decode_protobuf_stream output size.schedule_sentinel trigger for continuous contract verification.io.kestra.plugin.aws.s3.Upload or io.kestra.plugin.gcp.gcs.Upload) to archive validated JSON or Parquet batches directly to cloud object storage.io.kestra.plugin.kafka.Produce or io.kestra.plugin.amqp.Produce) to isolate non-compliant messages for debugging.