How Novu Works
Novu was built to provide the most flexible and customizable set of building blocks to deliver modern embedded notification experiences.
We can break down the Novu platform into five main components:
Dashboard
The Dashboard is a user interface dedicated to managing the workflows, connecting integrations, debugging workflow execution, and more. The dashboard experience can be optionally extended using the Novu Framework SDK.
Novu API
The Novu API is responsible for triggering notifications, managing subscribers, powering the Inbox Component, and more. This is a restful service that you can access using our server-side SDKs or directly via HTTP using the generated API Secret Key associated with your environment.
Workflow Engine
Once an event is triggered, it will be persisted on our database and pushed to the workflow queue, which will be picked by the workflow engine for processing. The workflow engine is responsible for fanning out the generated notifications to multiple subscribers and topics, scheduling delayed events, and retrying failed jobs, handling subscriber preferences and more.
UI Components
Novu offers a set of full-stack components that can be embedded in your application to allow users to manage their notification preferences, view notification history, and more.
Framework Endpoint (Optional)
Novu can run without a bridge endpoint, but was built to be extended to support any use case.
The bridge endpoint is an HTTP endpoint that is powered by the Novu Framework SDK and should be deployed in your own infrastructure. The endpoint is responsible for extending and customizing the notification platform with more complex logic, such as:
- Automating workflow creation with code powered by GitOps
- Creating custom components for email and other channels
- Abstracting away advanced logic by custom Dashboard controls.
- Executing advanced logic such as:
- Fetching data from external APIs
- Hydrating just-in-time subscriber and topic information
- Decision making for delivery based on custom rules
Was this page helpful?