Lavorare su un'API ...
Considerare un database di esempio come il seguente per alcune applicazioni aziendali:
+-------------------------------+
| tables |
+-------------------------------+
| account_achievement_mappings |
| account_company_mappings |
| account_document_mappings |
| account_feature_mappings |
| account_group_mappings |
| account_notification_mappings |
| accounts |
| achievements |
| companies |
| company_document_mappings |
| company_feature_mappings |
| documents |
| features |
| group_company_mappings |
| group_document_mappings |
| group_feature_mappings |
| groups |
| notifications |
+-------------------------------+
Nessuna delle tabelle è troppo complicata e le relazioni possono essere facilmente desunte dai loro nomi.
Come ho capito, con un'architettura di micro servizi, ogni micro servizio dovrebbe avere il proprio database.
Mi chiedo se sia possibile suddividere un tale schema in sotto-schemi, in modo che possa quindi refactored da un monolite a una raccolta di micro servizi.
Ad esempio, dal momento che notifications
è solo collegato a accounts
I anche se tirarlo fuori e creare un motore di notifica potrebbe essere un buon primo candidato.
Modifica:
1) Se i micro servizi condividono un database, il database non diventerebbe un collo di bottiglia?
2) Se riesco a separare il mio database in un insieme di database più piccoli, come gestisco le relazioni? Forse questo significa che non dovrei distruggerli.