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 complete production flow is stored in Git as a NiFi Registry snapshot.
Argo bootstraps that exact snapshot into NiFi Registry and a NifiDataflow
resource pins version 1 with syncMode: always. NiFiKop continuously restores
the Git-managed version if the live process group drifts.
The NiFi GUI is intentionally read-only for the human OIDC group. Flow changes must be made by updating the snapshot and version in Git; the certificate-authenticated NiFi operator is the only flow writer.
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(injected into the NiFi runtime by thek8s-kafkamanifests; it is never stored in the flow snapshot)
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.