Production NiFi flow app for platform notification orchestration.
Flow ownership:
- Consume notification requests from
platform.notifications.requested.v1. - Extract notification metadata.
- Mark the request as
processingthroughplatform-notification-service. - Resolve rules, templates, preferences, and channel fanout.
- Call
platform-notification-executorfor each concrete delivery attempt. - Record delivery attempts through
platform-notification-service. - Mark the request as
sent,partially_sent, orfailed. - Route orchestration failures to
platform.notifications.requested.dlq.v1.
The first implementation creates the process group, Kafka connection, core callbacks, and a dry-run executor call. Rules/template resolution processors are present as named placeholders so they can be replaced with concrete service calls without changing the intake or delivery contract.
Required Vault values before first production sync:
secret/data/k8s-kafka-nifi-registry-bucket-id#valuesecret/data/kafka-admin-username#valuesecret/data/kafka-admin-password#valuesecret/data/kafka-nifi-username#valuesecret/data/kafka-nifi-password#valuesecret/data/platform-notification-service#token
Default topics:
- request topic:
platform.notifications.requested.v1 - DLQ topic:
platform.notifications.requested.dlq.v1
Kafka access:
platform-notification-kafka-topicscreates the request and DLQ topics and grants the NiFi Kafka principal read/write/describe/create access to theplatform.notifications.topic prefix, read/describe access to the consumer group, and cluster describe access.
Execution boundary:
platform-notification-serviceowns request validation, enrichment, queue publication, and Directus audit writes.- NiFi owns visible orchestration, retries, failure routing, and callbacks.
- Rules/template lookup should be implemented as explicit processors or service calls inside this flow.
platform-notification-executorowns provider-specific delivery behavior.