Skip to content
Weik.ioDocs
2026.2
Try Weik.io

Event sources

Weik.io 2026.2

An event source brings events in from a queue, a bucket, a webhook or a folder with any Camel source kamelet, and publishes them into a channel of its own name. Product page · Video

Watch: An event source brings events in, 3:17

The video brings events in from an outside system with an event source.

On this page

An event source brings events in from a system outside Weik.io: a message queue, a storage bucket, a folder, a mailbox or anything else a Camel source kamelet can consume. You write one document with the kamelet’s name and its parameters, and the platform generates the route.

Write the source#

finance/events/invoice-files.yaml
apiVersion: weik.io/v1
kind: event-source
metadata: { name: invoice-files, project: finance }
spec:
  type: aws-s3
  parameters:
    bucketNameOrArn: "{{invoice-bucket}}"
    accessKey: "{{aws-access-key}}"
    secretKey: "{{aws-secret-key}}"
    region: eu-north-1

type is the source kamelet’s name without its -source suffix, which the build adds, so aws-s3 is Camel’s aws-s3-source. parameters are that kamelet’s own, as Camel’s kamelet catalog lists them, and each value can be a placeholder for a variable or a secret.

The source publishes into a channel with its own name, here invoice-files. That channel needs no document of its own, and listing, re-sending and subscriptions work on it as on any declared channel.

Apply and deploy it#

A source is an integration like any other: it has versions, a deployment per environment and an agent that runs it.

Terminal
$ weikio apply -f ./finance/events/
You see
Target: https://hub.example, project finance (from finance/project.yaml)
event-channel finance/invoice-created unchanged
event-channel finance/invoice-alerts created (version 0.1.0, built in 14.2 s, delivers to slack)
event-source finance/invoice-files created (version 0.1.0, built in 16.8 s, aws-s3 -> invoice-files)
event-subscription finance/files-to-invoices created (version 0.1.0, built in 15.1 s, invoice-files -> invoice-created)
event-subscription finance/alert-on-invoices created (version 0.1.0, built in 14.9 s, invoice-created -> invoice-alerts)

Nothing new is running yet. To run it:
  weikio deploy -f ./finance/events --env devtest
Terminal
$ weikio deploy finance/invoice-files --env production

An event source runs one copy at a time by default, so a bucket that two agents could read is read once.

Change events on the way#

steps is a list of kamelet actions between the source and its channel, as in a Camel K Pipe, such as json-deserialize-action from Camel’s catalog or a kamelet of your project:

spec:
  type: aws-s3
  parameters: { bucketNameOrArn: "{{invoice-bucket}}", region: eu-north-1 }
  steps:
    - kamelet: json-deserialize-action

When the source fails#

errorHandler says what happens to an exchange that fails: log writes the failure once at ERROR with the exception and the body, which is the default for a source, none leaves it failed, and sink sends it to another channel or a URL. A publish the hub didn’t store is never counted as handled.

To bind a source to a channel other than its own, or to deliver its events somewhere, add a subscription.