Building a Highly Available, Real-Time Email Tracking System using Cosmos

Have you ever used email marketing software such as Mailchimp or Mailerlite? If you have, then you will already be familiar with their email tracking feature. This feature allows you to keep track of an email's open count and to check whether a particular user has clicked on an email, which is great for any business.

If you are not used to such marketing software, then allow me to introduce you to it. Email marketing software allows you to send a huge number of emails—say, millions at a time—and track how many people have opened it and how many clicked on the button which leads to them buying your product. Some software even tracks your sales data, which is mind blowing.

Let me explain this to you with a scenario which will demonstrate how important it is; imagine that this book got released and the publisher, Packt, sent millions of its readers an email saying:

"We have launched a book! Grab it with 30% discount"

Now, there is a system which tells you that you sent a million emails and around 100K people opened it, of who 20K clicked on the button; Packt can then easily tell that they got sales of, say, 2K books as a result of that email.

So, there is some math that you can do to figure out the conversion rate! Pretty amazing, right?

Well then, let's build one and see how it works.

Welcome to the second to last chapter of this book. I am super pumped to get you through this chapter, as this is (in my opinion) one of the most interesting chapters in this book.

In this chapter, we are going to cover the following topics:

  • Is email tracking legal?
  • System design and assumptions
  • Choosing the database API in Cosmos DB
  • Writing our email sender
  • Tracking emails and storing tracking data
  • What's next? Maybe machine learning

OK, I hope you are interested in the topics so far. Let's jump in.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.141.201.26