<story><title>Real World Microservices: When Services Stop Playing Well and Start Getting Real</title><url>https://blog.buoyant.io/2016/05/04/real-world-microservices-when-services-stop-playing-well-and-start-getting-real/</url></story><parent_chain><item><author>sakopov</author><text>From my own experience building a platform of products on top of microservices, I find that the most difficult part about this architecture (and the one that nobody ever talks about) is how to share data between microservices via message bus instead of direct requests. If you can get this down the rest, in my opinion, is just pure bliss and a piece of cake.</text></item></parent_chain><comment><author>devonkim</author><text>Message buses and queues are far, far easier to manage than API endpoints across a bunch of loci of control, so this may be why it&amp;#x27;s not discussed as much as, say, how the lifecycle of REST services work. Topics and queues with different segmentation features are much more powerful and fine-grained in control compared to a service that&amp;#x27;s tied to HTTP transport than, say, a REST or SOAP API. For object serialization &amp;#x2F; marshaling, you can use a lot more stuff now all of a sudden like Protocol Buffers, Capn Proto, Thrift, Avro. The recommended advice comes down to what your bus &amp;#x2F; queue is (each one offers vastly different best practices and features to implement them) as well as how you want to scale out and up. But perhaps a general set of terminologies &amp;#x2F; jargon may be worth pursuing as a community for the problem.&lt;p&gt;The question I really have is how people have managed to upgrade their message bus and to keep availability high with rollback contingencies while upgrading, say, RabbitMQ or Kafka across all your connected services. I really don&amp;#x27;t hear about that as much as how to do rolling restarts &amp;#x2F; upgrades of nodes for a service endpoint using some feedback from monitoring and metrics.</text></comment>
<story><title>Real World Microservices: When Services Stop Playing Well and Start Getting Real</title><url>https://blog.buoyant.io/2016/05/04/real-world-microservices-when-services-stop-playing-well-and-start-getting-real/</url></story><parent_chain><item><author>sakopov</author><text>From my own experience building a platform of products on top of microservices, I find that the most difficult part about this architecture (and the one that nobody ever talks about) is how to share data between microservices via message bus instead of direct requests. If you can get this down the rest, in my opinion, is just pure bliss and a piece of cake.</text></item></parent_chain><comment><author>chuhnk</author><text>Event sourcing is the thing you&amp;#x27;re looking for and something that will probably be the focus of many building microservice platforms.</text></comment>