Mam problem z podejściem architektonicznym do mojego problemu. Rozwijam sobie własny projekt, główny soft + SDK. SDK to nic innego jak biblioteka zbierająca dane i wysyłające do softu napisanego w NodeJS (ale to w sumie bez znaczenia). I teraz tak, z racji, że moje SDK zbiera dane dość często postanowiłem po odebraniu requestu od niego dodać payload do kolejki SQS na AWS. Dodatkowo za każdym razem kiedy do SQS wlatuje nowy item, triggerowana jest funkcja na AWS Lambda która processuje ten payload (obrabia, zapisuje itd.). Cały soft to generalnie rzecz ujmując monolit, zgrabny bo ładnie rozwijany ale monolit. I teraz mam pytania.
- Czy endpoint odbierające dane z SDK powinien być osadzone na oddzielnym mikroserwisie aby odciążyć główny soft? - jedyne co jest robione to odbieranie
request.bodyi dodawanie do kolejki SQS. Chyba, że lepiej byłoby go również osadzić na AWS? - Czy jest sens pisania handlera do SQS na oddzielnym mikroserwisie kiedy sama funkcja jest eksportowana do Lambdy? - w końcu kod i tak się nie wykonuje na instancji serwera a jedynie na instancji AWS Lambdy.
- Kiedy należy rozdzielać kod na mikroserwisy? Powiedzmy, że mam takie cztery główne funkcjonalności na ten moment, czyli obsługę danych z SDK, obsługę użytkownika, obsługę kolejek czy obsługę webSocketów. Czy jest zawsze sens to wszystko rozdzielać?
Dzięki za każde podpowiedzi!