PutEvents icon
Download icon
JsonToIon icon

Publish Application and System Events to AWS EventBridge for Event-Driven Architectures

Publish application, system, and IoT events to AWS EventBridge with Kestra. Power event-driven and serverless workflows using inline or file-based payloads.

Categories
Cloud

Publish custom application and system events to AWS EventBridge so you can fan out user actions, payments, IoT signals, and notifications to serverless functions, downstream AWS services, and SaaS targets. This blueprint covers both inline event publishing and bulk ingestion of file-based event payloads, giving you a reusable foundation for decoupled, event-driven architectures on AWS without hand-rolling the PutEvents API calls.

How it works

  1. The send_events task (io.kestra.plugin.aws.eventbridge.PutEvents) publishes three inline events to the default event bus, each with a source, detailType, and a JSON detail payload representing application signals such as sign-ins, payments, or sensor readings.
  2. The extract_json task (io.kestra.plugin.core.http.Download) downloads a sample app_events.json dataset over HTTP into Kestra's internal storage.
  3. The json_to_ion task (io.kestra.plugin.serdes.json.JsonToIon) converts that JSON file to Amazon ION, the row-based format the EventBridge API consumes, with newLine set to false.
  4. The send_events_json task (io.kestra.plugin.aws.eventbridge.PutEvents) reads the ION file via entries and publishes every record to EventBridge in a single bulk operation.

What you get

  • Two production-ready patterns: inline events for simple signals and file-based ingestion for bulk loads.
  • JSON to ION conversion so you can reuse payloads exported from logs, datasets, or other systems.
  • A clean separation between event producers and consumers using AWS-native messaging.
  • A template you can point at any event bus, source, or detail type.

Who it's for

  • Platform and backend engineers building event-driven microservices.
  • Data engineers streaming application or telemetry events into AWS.
  • DevOps teams wiring serverless and SaaS targets through EventBridge.

Why orchestrate this with Kestra

EventBridge routes events but does not produce them on a schedule or in response to upstream pipeline state. Kestra fills that gap: trigger event publishing on a cron, a webhook, or the completion of an upstream task, add retries for transient AWS failures, and keep full execution lineage and logs for every batch you send. Everything is declared in version-controlled YAML, so your event-publishing logic lives next to the rest of your orchestration instead of in scattered scripts or Lambda glue.

Prerequisites

  • An AWS account with an EventBridge event bus (the flow uses default).
  • IAM permissions for events:PutEvents.
  • Kestra 0.16.0 or later with the AWS plugin available.

Secrets

This blueprint runs against public sample data and a default event bus, so it references no secret() values out of the box. For real workloads, configure AWS credentials using Kestra pluginDefaults or IAM roles rather than hardcoding them, for example by adding accessKeyId, secretKeyId, and region sourced from secrets.

Quick start

  1. Add the blueprint to a namespace in your Kestra instance.
  2. Configure AWS credentials and the target region via pluginDefaults or an attached IAM role.
  3. Adjust eventBusName, source, and detailType on the PutEvents tasks to match your setup.
  4. Execute the flow and confirm the events arrive on your EventBridge bus via a rule or CloudWatch.

How to extend

  • Replace the sample HTTP download with a real source such as an S3 export, a database query, or another upstream task output.
  • Add a Kestra trigger (cron, webhook, or flow trigger) to publish events automatically.
  • Branch event payloads by detailType and route them with EventBridge rules to Lambda, SQS, or SNS.
  • Add retries and alerting tasks to harden the flow for production.

Links

Orchestrate with Kestra
Orchestrate AWS with Kestra
Share this Blueprint
See How

New to Kestra?

Use blueprints to kickstart your first workflows.