Zum Inhalt springen

Überblick über Events-Provider

Events-Provider ermöglichen es Ihrem Digital Worker, auf externe Trigger außerhalb von Messaging zu reagieren. Sie verarbeiten:

  • Webhooks von externen Diensten
  • Geplante Aufgaben (Timer/Cron)
  • E-Mail-Benachrichtigungen
  • SMS-Benachrichtigungen
External Service / Timer
▼ HTTP / Schedule
┌─────────────────────────────────────────┐
│ Events Ingress │
│ (Process incoming event) │
└─────────────────────────────────────────┘
▼ Normalized Event
┌─────────────────────────────────────────┐
│ NATS Bus │
│ greentic.events.{env}.{tenant}.{type}│
└─────────────────────────────────────────┘
┌─────────────────────────────────────────┐
│ Flow Executor │
│ (Process with event flows) │
└─────────────────────────────────────────┘

Alle Ereignisse werden auf ein gemeinsames Format normalisiert:

pub struct Event {
pub id: String,
pub event_type: String,
pub source: String,
pub timestamp: u64,
pub payload: Value,
pub metadata: Option<Value>,
}
greentic.demo.yaml
providers:
events-webhook:
pack: "providers/events/events-webhook.gtpack"
events-timer:
pack: "providers/events/events-timer.gtpack"
flows/on_event.ygtc
name: handle_event
version: "1.0"
nodes:
- id: process
type: script
config:
script: |
// Process the event
let payload = event.payload;
process_payload(payload)
next: respond
triggers:
- type: event
event_type: "order.created"
target: process

Ereignisse fließen über NATS:

SubjectZweck
greentic.events.{env}.{tenant}.{type}Ereignisbenachrichtigungen
greentic.events.{env}.{tenant}.{type}.resultErgebnisse der Ereignisverarbeitung
nodes:
- id: on_order
type: branch
config:
conditions:
- expression: "event.event_type == 'order.created'"
next: send_confirmation
- expression: "event.event_type == 'order.shipped'"
next: send_tracking
nodes:
- id: daily_report
type: http
config:
method: GET
url: "https://api.example.com/reports/daily"
next: send_email
triggers:
- type: timer
cron: "0 9 * * *" # 9 AM daily
target: daily_report