Building a multi-cloud notification service— Part 1: Concepts and Architecture
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:
- Save the data in a NoSQL real-time database for in-app notifications
- Save the data in a SQL database for analytics
- 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:
- Google Cloud Firestore — Real-time database so we can listen and show notifications as soon as they’re available.
- Amazon RDS — Relational database for data analytics.
- Google BigQuery (Optional) — Google’s analytics database, you can skip this step if you please.
- 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).
- 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.

