Easily build an Event Reminder with Cloud Workflows and Cloud Scheduler

Building an event reminder, like Facebook anniversary reminder can seem more laborious than it really is. In this article, I elaborate on an easy, yet efficient way to build a birthday reminder application. Please, read through to unlock your access to the repository containing the full working code. Following are the main topics covered:
Introduction to Cloud Workflows and Cloud Run
Build the Birthday Identification Service
Build the Email Notification Service
Build the Birthday Reminder Service
Summing Up
Introduction to Cloud Workflows and Cloud Run
Cloud Workflows is a Google Cloud service that lets you orchestrate a series of HTTP-Based services. Those services can be internal (when they belong to a Google Cloud domain) or external. In additional to its attractive cost, Cloud Workflows has some unique and interesting features to offer like Wait and Callback that lets you wait for up to 1 year for an event to happen.
Cloud Run is used to run containerized applications at scale. As a serverless offer it does not require creating a cluster or a Virtual Machine, which accelerate building and deploying applications. Although Cloud Run tends to be used often for websites and Rest APIs, it can be used for a broad range of tasks including lightweight data processing or task Automation. On that note, this article uses a data processing Cloud Run service to identify people that will be soon celebrating their birthday and a task automation Cloud Run service that sends reminder emails.
Build the Birthday Identification Service
Let's imagine that we have been given the details of a group of people whose anniversary should be reminded in advance to a few people, maybe their closest friends.

Looking at the first line of the table above, we see that Mr Smith was born a 25th of December. Then, the goal might be to automatically notify Mr Smith's friends via email one week ahead (so that they have enough time to arrange the surprise party