Zawsze projektuj z myślą o tym, że coś się może nie udać. Nie ważne, jak bardzo dbamy o zabezpieczenia i stabilość systemu - każda dobra aplikacja powinna być projektowana pod potencjalny błąd.
Dobra dekompozycja zmniejsza potrzebę integracji.
Cache
Retry
Rate limiters
Fallback
Circuit breakers
Metrics
Komunikacja asynchroniczna
Testowanie (Chaos Monkey z wyłączaniem poszczególnych usług i sprawdzaniem jak działa system).