External Service Dependencies

Database

MySQL database MUST be used that is at least version 5.7, due to the use of enums and the JSON column type. Various queries performed by the app also make use of MySQL specific features/syntax.

Email

Any email service supported by Laravel can be used. If a custom driver is needed, either issue a pull request or create an issue to request implementation.

SMS

Any SMS service supported by Laravel can be used. If a custom driver is needed, either issue a pull request or create an issue to request implementation.

Object caching

Any object caching service supported by Laravel can be used. If a custom driver is needed, either issue a pull request or create an issue to request implementation.

Queue

Any queue service supported by Laravel can be used. If a custom driver is needed, either issue a pull request or create an issue to request implementation.

Search

Elasticsearch MUST be used for searching. Laravel Scout is used for synchronising the database with the search provider, however, the actual search itself uses a raw query specific to the search provider. If a custom driver is needed, either issue a pull request or create an issue to request implementation.

Logging

Following the principles of The Twelve-Factor App, the logging output of the app will go to stdout or stderr. This will then be gathered by an external logging service by creating a log drain service.

For AWS implementations, the CloudWatch agent can be set up to proxy logs from the /storage/logs/laravel.log file to CloudWatch.

Application error logging uses Bugsnag.

File storage

Any file storage service supported by Laravel can be used. If a custom driver is needed, either issue a pull request or create an issue to request implementation.

Geocoding

Geocoding only currently supports the Google Geocoding API driver. If a custom driver is needed, either issue a pull request or create an issue to request implementation.