Re:Microservices – Demo Project in Python
by peterhunt on Wednesday December 02, 2015 @05:37AM
(#10662149)
Sure, but if you ever need to shard, you can no longer assume you can do atomic transactions anyway, which means you need to rewrite a lot of stuff.
By designing in this way, your scaling problems change from "the entire app fell over" to "the movie service fell over", which really helps with availability.
Not that there aren't disadvantages with microservices (overhead, distributed tracing, etc), I just think app architecture isn't one of them.
Also there's another downside to this approach: you lose the ability to do atomic transactions on the application's data.