Outlook on Notifications

A complete guide on Notification Service for Modern Applications in 2024

Nikita Navral
September 7, 2023
TABLE OF CONTENTS

In today’s digital age, effective communication has become a cornerstone of customer engagement and user experience.

If you opened this blog, you would already understand the significance of timely notifications in enhancing user interaction and driving business growth. Whether it's alerting users about a new message, an upcoming event, or simply status update, a reliable notification service is crucial.

However, building a notification infrastructure in-house is not an easy task. It requires careful planning, development, and maintenance. In this blog, we will take a closer look at all the different components of a notification infrastructure. By the end, you'll have a comprehensive understanding of what it takes to build an in-house notification service, which challenges to anticipate, and what strategy is right for your company.

The Building Blocks: Functional Components

A notification infrastructure has to have several components working together to deliver the right notification experience. Diving deep into some of the functional components:

1. Delivery Channels & Vendor Integrations:

Delivery channels form the backbone of how messages reach users. And with users present on many different types of channels, it becomes imperative to reach users on multiple channels to maximize engagement. Hence, the notification service must be integrated to various channels like email, SMS, in-app (bell icon), push notifications, whatsapp, slack/ teams, automated calls and more. Integrating with providers for each channel can be complex, involving vendor evaluation, multiple API integrations, quality of service, testing & monitoring, and fallback strategies.

2. Templating Engine:

At the heart of any notification service lies the ability to craft messages that resonate with users. At the same time, with multi-channel notifications, you can tailor your content to match the strengths of each channel. For instance, emails can accommodate longer and more detailed information, while text notifications are ideal for short and attention-grabbing messages, whereas push supports multi-media and action buttons.

Templates probably take the most time and engineering resources from ownership perspective,  as they demand constant changes for copy writing, personalization, unified branding, adding variables dynamically, rendering the message correctly across different channels and devices, accommodating multi-lingual support, error handling, managing conditional statements, testing & deploying to name a few. It is best to give an interface with visual editors for all channels, so non-engineers can build and experiment with notifications.

3. User Preferences:

Accurate targeting is key to avoiding notification fatigue and being user centric. Typically marketing notifications provide a simple opt-out option, but the same cannot be extended to product notifications. Your users would definitely want to receive some notifications, whereas they would want flexibility on other types of notifications. A robust user preference management system ensures users receive messages of the right kind, on the right channel and at the right frequency.

It involves creating an intuitive user interface where businesses and users can define their notification experience, which involves selecting notification types, preferred communication channels, frequency (instant alerts, or hourly / daily / weekly summary), and timing (allowing quiet hours). Offering opt-in/opt-out choices are crucial otherwise users tend to block all communications when they are bombarded by irrelevant or too many alerts.

4. Batching / Digest:

For certain types of notifications, it is expected to group multiple actions into a single notification, instead of sending separate notifications for each and every alert. For instance, if your product supports comments, an ideal experience would be to define a batch window and then combine all comments within that batch window and send them in a single notification.There is also a need to send summary digests to users, and send it at the time and frequency preferred by the user (eg. send updates in hourly, daily, weekly summary). Depending on type of notification, both batching and digest are needed for a good notification experience.

5. Multi-tenancy for customers:

If your product supports multiple tenants or customers and triggers notifications to their users, you would most likely need an architecture to support multi-tenancy in notifications. From a functional perspective, you would require data isolation, and customization in their notification settings - creating on-brand templates, routing notifications from their domain and handles, customize notification channels and user preferences for each tenant respectively.

For instance, if you are a SaaS platform generating invoices for your customers, the end user might not recognize your brand, therefore, you need to send notifications with your customers’ branding (maybe with custom content & design), with their user preferences, and notification strategies, all within a shared infrastructure.

6. Notification Analytics:

For product managers, insights into notification effectiveness are invaluable. Tracking delivery rates, open rates, and user engagement enable you to get actionable insights and do data-driven optimizations in notifications. Depending on the channel, you may require to consume user actions from a webhook (eg. Sendgrid provides delivery, open, click), or build your own infrastructure for tracking (in push notifications or AWS SES).

Also, with a multi-channel notification system, each channel and vendor have their own definitions of user actions and data available (eg. you cannot track open rate in SMS) - this calls out for standardization in user actions, so that product managers can analyze cross-channel notifications effectively.

The Pillars of Reliability: Non-Functional Components

A notification service cannot afford to go down, especially for notifications that require user attention, or from a compliance perspective. You can also go through some notification architecture designs for your implementation. For a robust service, non-functional components work behind the scenes, ensuring reliability, scalability and efficiency:

1. Scalability & Load Balancing

A notification service can experience varying levels of traffic, often peaking unexpectedly. Designing for scalability ensures that the system can handle increased loads without performance degradation. Load balancing across servers and regions is vital for maintaining consistent service availability.

2. Fault Tolerance, Redundancy & Failure Retries

In a notification system, downtime is not an option. Engineers must architect the service with redundancy and failover mechanisms to mitigate the impact of server failures or network issues. This involves setting up state management, configuring fallback vendors, throttling requests according to rate limits for individual channels and vendors and setting retries on failure. Remember, not all kinds of failures would need a retry mechanism (a push token expired is dead cause), so understanding failure reasons would be an integral part.

3. High Deliverability

There are many aspects to ensure high deliverability. Introducing multiple channels, choosing reliable vendors, cleaning up inactive channels, bounce management are some of the ways to make sure that the intended user gets the notification.

4. Low Latency

Users expect notifications to arrive promptly. Minimizing latency requires optimizing message delivery paths, reducing network round trips, and optimizing database queries. This is a continuous effort to maintain high performance as the system scales.

5. Observability & Diagnosis

Setting up monitoring is crucial for identifying and resolving issues when failures occur. Implementing detailed logging, error tracking, and performance monitoring allows you to diagnose problems swiftly and escape any compliance issues.

6. Message Queue Prioritization

Not all notifications are of the same priority. For instance, authentication notifications are high priority notifications as users expect to receive OTP instantly to login, and delay would increase drop-offs. Whereas recommendations or a newsletters, often sent in bulk, are not very time sensitive. Without prioritization, the queue could become cluttered with low-priority bulk notifications, potentially delaying the delivery of critical messages. You could even create separate queues for critical / high / low priority notifications and define their throughput rates to prevent congestion and save spending too much on infrastructure costs.

To build or not to build: Making the decision

Now that we've explored the multifaceted components of a notification service, let's discuss when building one in-house makes sense and when it might be best to integrate with a notification infrastructure as a service. We have covered the details on Build vs Buy in this blog, but here is a quick summary:

When to build:

  1. Simplicity
    If your notifications are too few in type, volume, doesn’t require changes often, and are meant for a single channel, then direct integration with vendors or a light weight central notification service can do the job.
  2. Highly Customized:
    If your business use cases are very unique and require great deal of customization which are not available in third party platforms (eg. chatbot on SMS), then building a custom service internally is the best option.
  3. Notifications is the product:
    If your product offering is predominantly notifications (Whasapp for instance), it makes sense to have the ownership in-house instead of building on a third party.

When to consider alternatives:

  1. Resource Constraints
    Building and maintaining a notification service requires substantial engineering resources. If your team is limited, it might be more efficient to leverage existing notification platforms or APIs.
  2. Time to market
    Developing a notification service from scratch can be time-consuming. If speed is of the essence, using third-party services could accelerate your product's launch.
  3. Complex Features
    If your notification requirements involve complex features such as workflows, white-labeling notifications, user preferences, personalization, batching, cross-channel communication, an established platform offers these capabilities off the shelf.
  4. Focus on core competencies
    Getting notifications right requires a lot of time and learning for experimentations, deep understanding of all channels, scaling and building observability. This ends up distracting you from focusing on your core competencies.

This is how we have designed SuprSend to help you abstract your notification orchestration layer complexities.

A well-executed notification service can be a game-changer in engaging users, enhancing experiences, and driving business success. Balancing the functional aspects that empower product teams and the non-functional aspects that ensure reliability is key. This is where SuprSend comes in, where all these aspects are handled in the best way possible.

As an engineering leader, you should carefully evaluate your company's needs, available resources, and long-term goals to make an informed decision on whether to build an in-house notification service or opt for existing solutions. Whichever path you choose, remember that the ultimate goal is to create a seamless and meaningful user experience that fosters lasting connections.

You can see more of our engineering blogs here:

  1. How Redis Solved Our Challenges with Dynamic Task Scheduling and Concurrent Execution? [Developer's Guide] (suprsend.com) -
    • The problem statement was simple, or so we thought. In our previous setup, we used goroutines for scheduling database queries, allowing us to run the whole setup on minimal setup with SQLite and go service. Seems simple enough, but when we decided to also have this feature on our SaaS platform, at the onset, we didn’t realize we would also be walking into a new set of challenges of dynamic scheduling and concurrent task execution.
    • We needed a way to sync data in a scheduled manner from the client's data warehouse to our data store.
  2. Comparing Notification Infrastructure & Marketing Automation Tools: A Guide to Choose the Right Platform for Your Product (suprsend.com)
    • We discuss around when should one prefer marketing automation tools ike Braze, Cutomer.io and when does it make sense to check notification infrastructure tools like SuprSend.
  3. Dynamically Syncing In-app Notification Center Theme with Application's Current Theme State (suprsend.com)
    • Showcasing some customization capabilities of our app inbox notification center
  4. How Can SaaS Tools Enhance User Engagement with Notifications Channel Routing (like LinkedIn)? (suprsend.com)
    • Learn how to do efficient notifications channel routing, i.e, if email is unavailable send on SMS with smart logic.
Written by:
Nikita Navral
Co-Founder, SuprSend
ABOUT THE AUTHOR

What’s a Rich Text element?

The rich text element allows you to create and format headings, paragraphs, blockquotes, images, and video all in one place instead of having to add and format them individually. Just double-click and easily create content.

Static and dynamic content editing

A rich text element can be used with static or dynamic content. For static content, just drop it into any page and begin editing. For dynamic content, add a rich text field to any collection and then connect a rich text element to that field in the settings panel. Voila!

How to customize formatting for each rich text

Headings, paragraphs, blockquotes, figures, images, and figure captions can all be styled after a class is added to the rich text element using the "When inside of" nested selector system.

Implement a powerful stack for your notifications
By clicking “Accept All Cookies”, you agree to the storing of cookies on your device to enhance site navigation, analyze site usage, and assist in our marketing efforts. View our Privacy Policy for more information.