Skip to content
This repository has been archived by the owner on Sep 4, 2023. It is now read-only.
Martin Cook edited this page Dec 15, 2022 · 5 revisions

logo

What is Purple?

Purple is an idea for a self contained messaging microservice. The scenario is: You give Purple an email, or a text, via a REST call, and it takes care of storing that message, sending it, tracking it's history, and sending you status updates as the message processes.

What is Purple for?

Purple sends text or email messages, on behalf of users, or other software (applications websites, etc.).

Purple can send messages through these providers:

  • SMTP
  • SendGrid
  • Twillio

Purple keeps messages around for a configurable length of time. After that the messages and their history is removed.

Purple sends real-time status updates via a SignalR connection back to a custom C# client. Of course, you don't need the custom C# client to interact with Purple, but it does make everything ridiculously easy.

What Problem Does Purple Solve?

Sending text and/or email messages isn't particularly difficult, but managing retry attempts, potentially across multiple upstream providers, for hundreds, or even thousands of messages, isn't always easy. Purple offloads that responsibility so you can focus on what you do best, which probably, isn't sending emails to people.

What does Purple look like?

Here is what the main screen of Purple looks like (subject to change)

messges

What technologies does Purple use?

  • The microservice is hosted in a server-side Blazor application, using C# and .NET 7.x

  • The data is stored in a relational SQL-Server 2019 database.

  • The providers are all loosely coupled and easily swapped in production. New providers can be added at any time.

Where can I learn more?

Follow the link below for more information: