- PHP 7.1 or later
- Composer
- Laravel/Lumen
- AWS Account
- Auth0 Account
- SMTP Email Provider (You can use Gmail's free SMTP service)
This sample app is a simulation of an audio transcription service. It consists of the following microservices:
- Transcription API Gateway - a service that exposes an API
POST /transcriptionwhich accept a request to transcribe an audio file. Each new request is put on atranscription queueusing AWS SQS to be handled asynchronously in the backend. API Requests are authenticated using Authorization Bearer HTTP header and Auth0's Machine to Machine API Authorization. - Transcriber service - an auto-scaling service that uses AWS SQS and multiple workers. Each worker listens to the queue for transcription requests, and when there is a new request, the first available worker takes it off the queue, transcribes the audio and puts the result on the
notificationqueue. - Notifier service - listens to the
notificationqueue and when a transcription has been processed, it notifies the end user of the result via an email (for now). This could also be a push notification service on a native/web app.
The transcription and notifier services are not available publicly, they sit behind the Transcription API Gateway and communicate with each other and the SQS queues.
See individual Readme files in each service folder on how to setup and run each service.


