After reviewing Laravel Spark today (for the ADMIN PANEL (#1 above)), I've come to the conclusion that it will require a fair amount of customisation (no need for Billing/Plans at this point in time, Users/Teams/Roles reworking, Multi-Tenancy added etc). But, as it offers a good starting point, with many 'best practices' in mind, I may still go ahead and use it.
Multi-Tenancy / Multiple Data Centres
Hi,
I'm developing a multi-tenancy app that will allow doctors to store patient data. For regulatory reasons, the patient data needs to be stored in a data centre within a specific region eg. Australia Patient Data / Australia Data Centre (Sydney).
I plan to build it using Laravel, and would like to architect it in a way that will make adding other data centres down the track easier.
Any feedback / suggestions for improvements would be greatly appreciated.
A data centre in the US will be used to host:
- A SAAS (Multi-Tenancy) type app based on Laravel or Spark. This will be the admin panel Doctors can log into to add/edit/view patient data.
- A dedicated database used for running/managing the multi-tenancy app, doctor auth (login/logout etc.)
- An API based on Laravel or Lumen. This is the interface between the multi-tenancy app and the dedicated databases (in each of the regions) storing the patient data. It orchestrates all requests to the appropriate Patient Data Database.
- A dedicated database storing the US patient data. Accessible only via the API.
A data centre in the UK will be used to host:
- A dedicated database storing the UK patient data. Accessible only via the API.
A data centre in Australia will be used to host:
- A dedicated database storing the Australian patient data. Accessible only via the API.
Workflow example 1:
A doctor from USA logs into the Admin Panel (#1 below). The Admin Panel (#1) interrogates the Admin Panel Database (#3) to validate the login. If all is okay, the Admin Panel (#1) interrogates the Patient Data Database (#4.1) via the API (#2).
Workflow example 2:
A doctor from Australia logs into the Admin Panel (#1 below). The Admin Panel (#1) interrogates the Admin Panel Database (#3) to validate the login. If all is okay, the Admin Panel (#1) interrogates the Patient Data Database (#4.3) via the API (#2).
USA DATA CENTRE
1. ADMIN PANEL (Laravel or Spark)
2. API (Laravel or Lumen)
3. DATABASE - ADMIN PANEL
4.1. DATABASE - USA / PATIENT DATA
UK DATA CENTRE
4.2. DATABASE - UK / PATIENT DATA
AUSTRALIA DATA CENTRE
4.3. DATABASE - AUS / PATIENT DATA
Any feedback / suggestions for improvements would be greatly appreciated. Thank you.
Please or to participate in this conversation.