Oracle Cloud Infrastructure Notifications is a fully managed publish-subscribe service that pushes messages to a number of subscription endpoints at scale. Notifications supports push-based notifications to email, PagerDuty, Functions, HTTPS, Slack, and SMS endpoints, as well as integrated support with Oracle Cloud Infrastructure Monitoring and Service Connector Hub.
The most common use case for Notifications will be to support Monitoring messages and Service Connector Hub to send application alerts. For example, you can configure Oracle Cloud Infrastructure Monitoring alarms to send notifications to a topic. When you subscribe to the topic by using either Email or PagerDuty, you are immediately notified about anomalies in your cloud infrastructure. Another implementation is to use our email protocol integration to enable Notifications to send messages on behalf of your services to specified subscribers. For use cases ranging from password resets, to calendar reminders, and even shopping cart nudges, Notifications provides flexibility to decouple services with support for the most popular protocols and third-party integrations.
Notifications uses a publish-subscribe framework where publishers of messages are decoupled from the subscribers of the message. You set up communication channels for publishing messages by using topics and subscriptions. A topic is a channel for communicating messages to a subscription. A subscription is an endpoint for a supported protocol. When a message is published to a topic, the service sends the message to all of the topic's subscriptions.
You can access the Notifications service by using the Console (a browser-based interface) or the REST API, or CLI. For a list of available SDKs, see Software Development Kits and Command Line Interface.
Oracle Cloud Infrastructure offers the following messaging services for event delivery:
Although these services have a few similarities, they address distinct use cases:
Consider the following service comparison when determining whether the Notifications Service or the Email Delivery Service is the best fit for your use case.
|Service Feature||Email Delivery||Email Delivery|
|Requires confirmation before sending email||Yes||No|
|Allows raw email messages||No||Yes|
|Supports MIME attachments||No||Yes|
|Supports special handling for failed email delivery||No||Yes|
|Best fit for small messages (less than 64 KB)||Yes||No|
|Priced for large messages (greater than 64 KB, with a 2-MB limit)||No||Yes|
A topic is a channel for communicating messages to a subscription.
A subscription is an endpoint for a topic. Published messages are sent to each subscription for a particular topic. The following subscription protocols are currently supported:
The content that is published to a topic. Each message is delivered at least once per subscription. Every message sent out as email contains a link to unsubscribe from the related topic.
Notifications supports Email, PagerDuty, Functions, HTTPS, Slack, and SMS.
The following operations are supported with more documentation located here:
|createTopic||Creates a topic in the specified compartment.|
|getTopic||Gets the specified topic’s configuration information.|
|listTopics||Lists topics in the specified compartment.|
|updateTopic||Updates the specified topic's configuration.|
|deleteTopic||Deletes the specified topic.|
|createSubscription||Creates a subscription for the specified topic.|
|deleteSubscription||Deletes the specified subscription.|
|listSubscriptions||Lists the subscriptions in the specified compartment or topic.|
|getSubscription||Gets the specified subscription's configuration information.|
|updateSubscription||Updates the specified subscription's configuration.|
|getConfirmSubscription||Gets the confirmation details for the specified subscription.|
|resendSubscriptionConfirmation||Resends the confirmation details for the specified subscription.|
|getUnsubscription||Gets the unsubscription details for the specified subscription.|
|publishMessage||Publishes a message to the specified topic.|
All the messages that are published to a Notifications topic are durable in region. When a message is published to a topic, the message is synchronously replicated to three availability domains within a region before an acknowledgement is sent to the publisher of the message.
When a subscriber’s endpoint doesn’t acknowledge receipt of a message, the service retries delivery and currently retains the message up to two hours from the time the message is published to a topic. The service tries to deliver messages within the retention window.
Yes. Notifications drops a message when it reaches its maximum retention time, which is two hours, whether the message has been delivered or not.
Notifications delivers messages at least once to a subscription endpoint. With this implementations, duplication may occasionally occur and it recommended that the receiver handle any duplicated notifications.
Notifications can be configured to deliver messages to multiple endpoints of a single topic. For example, you can deliver an Oracle Cloud Infrastructure Monitoring alarm to an email address and or PagerDuty endpoint at the same time.
Notifications delivers messages from the publisher in the order that they are published to a topic. However, because of the nature of network partitions, internet connection stability, and transient failure, Notifications might deliver messages out of this order.
Currently, all the messages published to a topic are delivered to all the subscription endpoints of that topic. Subscribers can't selectively subscribe to a subset of messages.
You can’t delete a message after it's published to a Notifications topic.
You can change the subject line of each message by passing the subject as a parameter in the PublishMessage API operation. Currently, you can't change the default sender name of emails sent by Notifications.
|Published Messages Count||The number of messages published to Notifications.|
|Delivered Messages Count||The number of messages successfully delivered.|
|Failed Messages Count||The number of messages that were not delivered.|
|Published Messages Size (bytes)||The total size of messages published.|
|Delivered Messages Size (bytes)||The total size of messages successfully delivered.|
|Failed Messages Size (bytes)||The total size of messages that failed to be delivered.|
You can configure an alarm on the NumberOfNotificationFailed metric through the Monitoring service, learn more here.
The publication operation succeeds, but the messages are dropped because no subscriptions are interested in them.
If Notifications doesn’t receive an acknowledgement from a subscription endpoint, the service tries to redeliver messages for up to two hours. This situation can occur when the endpoint is offline. For example, the PagerDuty service might be offline.
By default, Oracle Cloud Infrastructure Tenant admins have permissions to create topics. However, the Tenant admins can grant permissions and policies to allow groups of users to create topics as well. For more information, see Getting Started with Policies. For specific details about writing policies for each of the different services, see Policy Reference. For common policies that give groups access to Notifications, see also Allow a group to manage topics, Allow a group to manage topic subscriptions, and Allow a group to publish messages to topics.
By default, the topic owner is allowed to publish messages, however other Oracle Cloud Infrastructure users can be given permissions. Please refer to allow a group to publish messages to topics.
A topic owner can set explicit permissions to allow more than one user or tenant to publish to a topic. By default, only topic owners have permissions to publish to a topic, to adjust your policies, learn more at allow a group to publish messages to topics.
The topic owner can grant subscription permission to a topic to the subscribers. For more information please refer to Common Policies for Notification Publishing.
For email, Subscribers will recieve a subscription confirmation URL once added. For more help with subscription confirmation and resending confirmation details, learn more here.
To ensure that a subscriber endpoint can't be spammed and that messages are sent only to valid, registered endpoints, Notifications requires an explicit opt-in from a subscriber.
Notifications authentication is integrated with the Oracle Cloud Infrastructure Identity and Access Management (IAM) service, learn more here.
A subscriber can unsubscribe from a Notifications topic in the following ways:
|Message size per request||64 KB|
|Protocol||Messages per minute to a single endpoint|
Notifications pricing is simple and intuitive. Customers pay per message delivery. For HTTPS, customers pay USD $0.60 per million messages per month. For emails, customers pay USD $0.02 per 1,000 emails sent per month. For SMS, customers pay per SMS depending on the destination country.
Notifications introduces a tier that lets Oracle Cloud Infrastructure customers get started for free. Each month, customers can deliver 1 million message to HTTPS endpoints and 1,000 email messages without incurring any cost.