Building a multi-cloud notification service— Part 1: Concepts and Architecture

André Farias
Sep 7, 2018 · 2 min read

Engaging your customer is a must have if you wish your product to succeed, and notifications services can help you with that. In this two-part series, we are going to design and implement a multi-cloud notification service. However, you should be familiar with the event-driven microservices pattern.

Concepts

Before start building any software architecture we must understand the real problem that we wish to solve and what is our primary objective; otherwise, we are at a high risk to build unnecessary features and waste a considerable amount of time.

Our primary objective in this project is keeping a relationship with the customer. We need to send messages asking him to execute an action within our platform and keep track of the notification status.

The actions executed when we send a notification are:

  1. Save the data in a NoSQL real-time database for in-app notifications
  2. Save the data in a SQL database for analytics
  3. Send an e-mail to the customer

Multi-cloud architecture

Adopting a multi-cloud environment means being ready to make use of the best available technologies. For example, Google has an excellent real-time database product called Firestore; Amazon did an excellent job with the AWS RDS database; then why would we choose just one cloud service provider?

That said, to achieve our objectives we are implementing the following technologies:

  1. Google Cloud Firestore — Real-time database so we can listen and show notifications as soon as they’re available.
  2. Amazon RDS — Relational database for data analytics.
  3. Google BigQuery (Optional) — Google’s analytics database, you can skip this step if you please.
  4. MailChimp — Mailing service delivery, you can create a free account here. If you don’t want to, deploy your mailing service and connect it through an HTTP API (in the next article we are providing you with the code so that you can publish it with Google Cloud Functions, AWS Lambda or any other hosting service).
  5. HTTP API for integrating all of these services in a single call.

Next Steps

In the next article, we are going to implement our notification service and connect all of these cloud providers in a single API call. In the meantime take a break to learn more about each one of the services we are going to use.

Bonus

If you wish to finish it before the next article launches on Medium, subscribe to our tech insights newsletter, get access to our articles before it goes public, and receive a $10 referral bonus on Digital Ocean services.

reactivehub

Reactive technology helping developers to integrate multi-cloud applications and shift their focus back to the things that really matter @ https://reactivehub.io

André Farias

Written by

CEO & Co-Founder @ Reactivehub, a platform for building and integrating event-driven multi-cloud applications. https://reactivehub.io

reactivehub

Reactive technology helping developers to integrate multi-cloud applications and shift their focus back to the things that really matter @ https://reactivehub.io

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade