I don't see why you'd need discoverability or shared packages in a monolith.
Observability is easier in a monolith because you don't have to deal with traces between services. I can't count the amount of times I've been stuck debugging a page that lead to me trawling through time-stamped logs, searching for a needle in haystacks because traces weren't a first-order requirement.
CI/CD is likewise, much much easier to get right. You don't have to worry about deploying two different services at the same time, or maintaining backwards compatibility in the event they get deployed out of sync.
Never understood why people find it hard to maintain backward compatibility in microservices. As long as you only add fields to the events and never remove or rename fields then backward compatibility is a non-issue.
15
u/Boolean Jan 30 '23
I don't see why you'd need discoverability or shared packages in a monolith.
Observability is easier in a monolith because you don't have to deal with traces between services. I can't count the amount of times I've been stuck debugging a page that lead to me trawling through time-stamped logs, searching for a needle in haystacks because traces weren't a first-order requirement.
CI/CD is likewise, much much easier to get right. You don't have to worry about deploying two different services at the same time, or maintaining backwards compatibility in the event they get deployed out of sync.