SFONDO
Sto provando a progettare un'applicazione SaaS basata su micro-servizi, in cui ogni microservizio sarebbe impacchettato nel suo specifico contenitore Docker.
Ho anche uno strumento CLI (un file binario) che funziona come un coltello svizzero (cioè fa più di una cosa) e ci sono alcuni micro-servizi che vorrebbero utilizzare le varie funzionalità dello strumento, rendendo lo strumento importante in tutta l'architettura Lo strumento può consumare / produrre un file o uno stream.
PROBLEMA
Non riesco a decidere tra i seguenti:
- Devo impacchettare lo strumento come parte di ciascun micro-servizio che ne ha bisogno?
- Devo impacchettare lo strumento come servizio separato?
Come si può decidere tra i due? Ci sono altre alternative?
CAVEAT
Ogni micro-servizio potrebbe dover generare / accedere a più istanze dello strumento contemporaneamente. Per elaborare ulteriormente, il micro-servizio può utilizzare lo strumento più volte, in sequenza o in parallelo per generare output diversi, che, in seguito, vengono aggregati e passati su altri servizi.