Cześć, powoli zabieram się za projekt, chciałbym opisać pewien jeden usecase bez wchodzenia w szczegóły. Chciałbym to zrobić na mikroserwisach, tylko że jestem w tym temacie początkujący :)
- Użytkownik uploaduje potencjalnie duży plik na serwer.
- Serwer wyciąga z pliku pewne metadane (średnio intensywna operacja - raczej nie dłużej niż kilka sekund).
- Użytkownik na podstawie metadanych, konfiguruje jakie biznesowe operacje może i chce wykonać na tym pliku.
- Użytkownik wysyła na serwer żądanie rozpoczęcia obliczeń na pliku.
- Serwer rozpoczyna obliczenia na pliku (bardzo intensywna operacja - nietrudno o dziesiątki minut).
- Serwer wysyła powiadomienie, że obliczenia się skończyły i są gotowe do odbioru. ;)
Gotowe obliczenia, w formie dużego pliku, będą trzymane na serwerze przez jakiś czas. Każdy użytkownik powinien mieć wgląd do historii swoich obliczeń.
Operacja 6 jest długa. Jest tam spore pole do popisu jeśli chodzi o współbieżność, ale nie chciałbym sobie na razie dawać zbyt wygórowanych założeń. Dlatego jeśli byłoby kilku użytkowników, to myślę, że obsłużyłbym ich sekwencyjnie.
Jak powinienem do tego zamodelować architekturę?
Czy to brzmi jak usecase dla kolejki?
Jakie serwisy rzucają się wam na myśl na jakie powinienem to podzielić?