Überblick über Events-Provider
Einführung
Abschnitt betitelt „Einführung“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
Verfügbare Provider
Abschnitt betitelt „Verfügbare Provider“ Webhook HTTP-Webhooks von externen Diensten empfangen
Timer Aufgaben mit Cron-Ausdrücken planen
E-Mail (SendGrid) Transaktionale E-Mails über SendGrid senden
SMS (Twilio) SMS-Nachrichten über Twilio senden
Architektur
Abschnitt betitelt „Architektur“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) │└─────────────────────────────────────────┘Ereignisnormalisierung
Abschnitt betitelt „Ereignisnormalisierung“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>,}Konfiguration
Abschnitt betitelt „Konfiguration“Im Bundle
Abschnitt betitelt „Im Bundle“providers: events-webhook: pack: "providers/events/events-webhook.gtpack"
events-timer: pack: "providers/events/events-timer.gtpack"Event-Flows
Abschnitt betitelt „Event-Flows“name: handle_eventversion: "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: processNATS-Subjects
Abschnitt betitelt „NATS-Subjects“Ereignisse fließen über NATS:
| Subject | Zweck |
|---|---|
greentic.events.{env}.{tenant}.{type} | Ereignisbenachrichtigungen |
greentic.events.{env}.{tenant}.{type}.result | Ergebnisse der Ereignisverarbeitung |
Häufige Muster
Abschnitt betitelt „Häufige Muster“Ereignisgesteuerte Benachrichtigungen
Abschnitt betitelt „Ereignisgesteuerte Benachrichtigungen“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_trackingGeplante Aufgaben
Abschnitt betitelt „Geplante Aufgaben“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