← Back to Blog

Simple Scalable Email Services

December 23, 2020
LaravelDockerOAuth2RabbitMQPostgreSQL

This project was created to test my PHP skills when I applied to MailerLite. It is built with KISS, DRY, and fail-fast principles in mind using Laravel as the foundation.

Restrictions

  1. Using a framework is not allowed, but Composer is fine.
  2. Must be authenticated or authorized to use the API.
  3. Must use a worker, queue, or message distribution system.
  4. Store all sent messages and emails in the database.

My approach

  1. Use Docker with a microservices architecture.
  2. OAuth2 for authentication (point no. 2).
  3. RabbitMQ as the message queue with supervisord managing workers.
  4. PostgreSQL for persistent storage.

Simple Scalable Email Services

Built on Laravel with a queue-driven architecture to handle high-volume email dispatch asynchronously.


Update: I am not selected for the position because I overengineered this, it should be a simpler solution. Just use Laravel's built-in queue system.


Repository