Even though you hear all these talks about scaling and infinite possibilities, the examples that truly match your use case are few and far between. So when we set out to make Nuvola (our greenfield Symfony application) use both sharding and a master slave approach at the same time, we faced a variety of issues and none of the solutions out there were a perfect match. We dealt with having Doctrine handle both features at the same time, possible delays in propagation from master to slave, and a whole class of bugs we may or may not have introduced with this change. Is this issue surfacing just now because of this change? Was it there all along and we just never noticed? This is not a story about how things look in a perfect world, this is about what we had, what we set out to do, and how we made it work.