Attualmente la mia architettura è guidata da molti eventi. Ogni richiesta API viene pubblicata il più rapidamente possibile inviando eventi che vengono eseguiti dopo la risposta.
Tuttavia questo è un monolite e i gestori di eventi vengono eseguiti con lo stesso processo che gestisce l'API. Rispondere a una singola richiesta API è efficiente, ma la CPU del processo si strozzerà rapidamente gestendo il lavoro di background su API +.
Ho due modi per ridimensionarlo:
-
Offset le attività in background ai lavoratori
-
Crea un cluster e bilancia il carico dello stesso processo
Sebbene entrambi gli approcci dovrebbero essere implementati a lungo termine: quale dovrebbe essere il primo a ridimensionare?
Il mio assunto è che un monolite non sano sarebbe più facile da risolvere con l'opzione (1), mentre l'opzione (2) copre le precedenti importanti esigenze infrastrutturali (quindi sarà ottimale per monoliti ben strutturati)