zależy czym ta sytuacja jest z punktu widzenia mikroserwisu A - to juz trzeba biznesu pytać jak mamy zareagować w tym konkretnym przypadku bo każda reakcja może być rownie dobra, np:
a) Klient pyta o obliczenie jego marż dla konta PREMIUUM - my odpytujemy o konfig kont PREMIUUM mikroserwis B, żeby to wyliczyć, okazuję się że konto PREMIUUM jest nieznane w systemie (mamy tylko PREMIUM, czyli literówka się wkradła) - wtedy pownniśmy zwracać jakieś kody z 4xx bo błąd jest po stronie klienta.
b) nasz mikroserwis odkłada jakieś metadane dotyczące transakcji klienta, niech to będą same ID - prosi nas pewnego razu o wygenerowanie wyciągu transakcji z 5 lat przed. Odpytujemy mikroserwis B (jakiś na dane archiwalne) o szczegółowe dane dla zadanych ID - mikroserwis B zwraca 404 - i tutaj powinniśmy potraktować to jako błąd - bo nie możliwa z punktu widzenia systemu jest sytuacja w której znikneły nam archiwalne faktury / coś sie rozsynchronizowało
c) Obliczamy oferte dla klienta - odpytujemy mikroserwis B o promocje aktywne dla grupy w której jest klient - zwraca 404. Wtedy ustawiamy wartość domyślną (brak promocji) obliczamy co trzeba i zwracamy normalnie 200.
Więc mamy tą samą sytuację (mikroserwis B zwraca 404) a 3 różne zachowania. W normalnej sytuacji to będzie opisane w zadaniu, jak należy się zachować / dopytać analizy lub biznesu bo to nie jest w kompetencji developera (chyba że case jest oczywisty)
Tutaj @Charles_Ray ma dużo racji, takie dylematy najczęściej wynikają ze złej architektury - jakby był model push i mikroserwis B pushowałby na szyne zmiany dotyczące autora, to wystarczyłoby zaaktualizować cache / storage mikroserwisu A i problem nie istnieje w ogóle, ale to tyle z teorii. W praktyce nie robimy rewolucji architektury 10 letniego systemu tylko kombinujemy jak to pożenić żeby działało.