Andrzej Krzywda's view: once you have event sourcing, everything else comes for free — decoupled bounded contexts/modules communicate via events, and going distributed later is natural since the only viable protocol between partitions is messages. A sensible path is: modular monolith → decouple modules via events → event-source everything → distribute when needed.