Attualmente sto lavorando a un progetto / prodotto che consiste di ~ 60 API REST e un client (app Web)
Trovo molti aspetti negativi di questo progetto, e non così tanti vantaggi, e mi piacerebbe sapere se questa è chiaramente una cattiva pratica dal punto di vista architettonico o solo cattiva esecuzione. (E se può essere migliorato senza cambiare il design)
Pro :
- Deploy
- La distribuzione è molto semplice.
- Se qualcosa non funziona, potrebbe non essere critico.
- Relazione con i dati
- Ogni API è strettamente correlata al suo "modello dati"
Contro :
- Memoria.
- Ogni API serve il proprio server http, in media a ~ 75mb inattivo.
- La maggior parte delle API ha almeno 2 "worker" (emitter / handler RabbitMQ) per interagire con altri sistemi.
- Sviluppo costoso
- La maggior parte delle API interagiscono tra loro e persino caricano il codice lato client.
- Gli errori sono difficili da trovare e facili da introdurre.
- Alcuni moduli sono usati in ogni API, cambiando questi potrebbe significare cambiare anche i 60 repository.
- Lotti di "boilerplate" ripetuti nella maggior parte dei progetti.