{"id":2529,"date":"2019-09-19T09:00:14","date_gmt":"2019-09-19T07:00:14","guid":{"rendered":"https:\/\/voxxeddays.com\/microservices\/?p=2529"},"modified":"2019-09-18T16:51:12","modified_gmt":"2019-09-18T14:51:12","slug":"bernd-rucker-on-complex-event-flows-in-distributed-systems","status":"publish","type":"post","link":"https:\/\/voxxeddays.com\/microservices\/2019\/09\/19\/bernd-rucker-on-complex-event-flows-in-distributed-systems\/","title":{"rendered":"Bernd R\u00fccker on \u201cComplex event flows in distributed systems\u201d"},"content":{"rendered":"<p><b>Hi Bernd, tell us who you are and what lead you into microservices?<\/b><\/p>\n<p><span style=\"font-weight: 400\">Our customers. Over the last years they adopted that architectural style more and more &#8211; and of course had questions around it. Then I saw a lot of misunderstandings around how to implement end to end business processes or workflows in these microservices architectures &#8211; as people tried to avoid mistakes made with BPM and SOA. That got me into thinking about that whole topic and I got quite enthusiastic about it &#8211; which actually lead to a couple of articles and more than 100 talks around the world.\u00a0<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><b>What will you be talking about at Voxxed Days Microservices?\u00a0<\/b><\/p>\n<p><span style=\"font-weight: 400\">I will be talking about these misunderstandings.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">For example: There is a big trend towards event-driven architectures. Which is great! But people often believe that these architectures are totally decoupled, which is simply not true. If two components communicate, they are coupled. Coupling by event-notification \u201cjust\u201d turns the direction of the dependency around, which might be nice in some cases, in some not. So if you implement some business process which spans multiple microservices purley by events, you get an event-chain, which is risky terrain. I want to explain that in more detail using a concrete example and also talk about how to achieve a good balance of orchestration and choreography.\u00a0<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><b>When we think of an orchestrator in a Microservices architecture, we think of a central point of failure handling all the business logic and delegating tasks to microservices. How do you see orchestration in a Microservices architecture ?\u00a0<\/b><\/p>\n<p><span style=\"font-weight: 400\">This is exactly one conception in the market that is not true. Orchestration means that you tell somebody else to do something for you, so one microservice calling other microservices. As we are in distributed systems we have to do remote communication between microservices. This is complex, so for example you have to wait for a message or for a peer service to become available. And you might even need to implement compensating transactions, as you can\u2019t simply rollback remote calls, but do separate \u201cundo\u201d calls instead. Workflow engines can help you implement this logic.<\/span><\/p>\n<p><span style=\"font-weight: 400\">And the latest generation of workflow engines is pretty lightweight and can be embedded into your microservice itself. So the orchestration logic is part of a single microservice. So it is nothing central at all!\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">To make that clear I sometimes talk about \u201clocal orchestration\u201d and I clearly recommend to avoid \u201cBPM monoliths\u201d in microservice environments (I wrote about that for example <a href=\"https:\/\/blog.bernd-ruecker.com\/avoiding-the-bpm-monolith-when-using-bounded-contexts-d86be6308d8\">here <\/a><\/span><span style=\"font-weight: 400\">.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">Don&#8217;t throw out the baby with the bathwater and ditch orchestration as a concept simply because you go for autonomy and decentralization!<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><b>Good, see you soon then\u00a0<\/b><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400\">#choreography #orchestration #workflow<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><b>My contact information\u00a0<\/b><\/p>\n<p><span style=\"font-weight: 400\">Twitter: <\/span><a href=\"http:\/\/twitter.com\/berndruecker\/\"><span style=\"font-weight: 400\">http:\/\/twitter.com\/berndruecker\/<\/span><\/a><span style=\"font-weight: 400\">\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">Blog: <\/span><a href=\"https:\/\/blog.bernd-ruecker.com\/\"><span style=\"font-weight: 400\">https:\/\/blog.bernd-ruecker.com\/<\/span><\/a><span style=\"font-weight: 400\">\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">LinkedIn: <\/span><a href=\"https:\/\/de.linkedin.com\/in\/bernd-ruecker-21661122\"><span style=\"font-weight: 400\">https:\/\/de.linkedin.com\/in\/bernd-ruecker-21661122<\/span><\/a><span style=\"font-weight: 400\">\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">GitHub:<\/span><a href=\"http:\/\/github.com\/berndruecker\"><span style=\"font-weight: 400\">http:\/\/github.com\/berndruecker<\/span><\/a><span style=\"font-weight: 400\">\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">See all of them on my homepage: <\/span><a href=\"https:\/\/berndruecker.io\/\"><span style=\"font-weight: 400\">https:\/\/berndruecker.io\/<\/span><\/a><span style=\"font-weight: 400\">\u00a0<\/span><\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hi Bernd, tell us who you are and what lead you into microservices? Our customers. Over the last years they adopted that architectural style more and more &#8211; and of course had questions around it. Then I saw a lot of misunderstandings around how to implement end to end business processes or workflows in these [&hellip;]<\/p>\n","protected":false},"author":1301,"featured_media":2532,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[12],"tags":[],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v15.3 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Bernd R\u00fccker on \u201cComplex event flows in distributed systems\u201d : Voxxed Days Microservices 2019<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/voxxeddays.com\/microservices\/2019\/09\/19\/bernd-rucker-on-complex-event-flows-in-distributed-systems\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Bernd R\u00fccker on \u201cComplex event flows in distributed systems\u201d : Voxxed Days Microservices 2019\" \/>\n<meta property=\"og:description\" content=\"Hi Bernd, tell us who you are and what lead you into microservices? Our customers. Over the last years they adopted that architectural style more and more &#8211; and of course had questions around it. Then I saw a lot of misunderstandings around how to implement end to end business processes or workflows in these [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/voxxeddays.com\/microservices\/2019\/09\/19\/bernd-rucker-on-complex-event-flows-in-distributed-systems\/\" \/>\n<meta property=\"og:site_name\" content=\"Voxxed Days Microservices 2019\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/vxdmicroservice\/\" \/>\n<meta property=\"article:published_time\" content=\"2019-09-19T07:00:14+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-09-18T14:51:12+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/voxxeddays.com\/microservices\/wp-content\/uploads\/sites\/54\/2019\/09\/Bannie\u0300re-Bernd-Ru\u0308cker_Plan-de-travail-1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"513\" \/>\n<meta property=\"fb:app_id\" content=\"vxdmicroservice\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@agoncal\" \/>\n<meta name=\"twitter:site\" content=\"@vxdmicroservice\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\">\n\t<meta name=\"twitter:data1\" content=\"Antonio Goncalves\">\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\">\n\t<meta name=\"twitter:data2\" content=\"2 minutes\">\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https:\/\/voxxeddays.com\/microservices\/#organization\",\"name\":\"Voxxed Days Microservices\",\"url\":\"https:\/\/voxxeddays.com\/microservices\/\",\"sameAs\":[\"https:\/\/www.facebook.com\/vxdmicroservice\/\",\"https:\/\/www.instagram.com\/voxxeddaysmicroservices\",\"https:\/\/www.linkedin.com\/in\/voxxed-days-microservices-906115164\/\",\"https:\/\/www.youtube.com\/playlist?list=PLRsbF2sD7JVrhlYIKTI--IU6xcfUjdNt2\",\"https:\/\/twitter.com\/vxdmicroservice\"],\"logo\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/voxxeddays.com\/microservices\/#logo\",\"inLanguage\":\"en-US\",\"url\":\"https:\/\/voxxeddays.com\/microservices\/wp-content\/uploads\/sites\/54\/2019\/06\/large-Voxxed_Days_Microservices_date_2019-01-2.png\",\"width\":1000,\"height\":387,\"caption\":\"Voxxed Days Microservices\"},\"image\":{\"@id\":\"https:\/\/voxxeddays.com\/microservices\/#logo\"}},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/voxxeddays.com\/microservices\/#website\",\"url\":\"https:\/\/voxxeddays.com\/microservices\/\",\"name\":\"Voxxed Days Microservices 2019, Conference & workshops\",\"description\":\"A Developer Conference on Microservices\",\"publisher\":{\"@id\":\"https:\/\/voxxeddays.com\/microservices\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":\"https:\/\/voxxeddays.com\/microservices\/?s={search_term_string}\",\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/voxxeddays.com\/microservices\/2019\/09\/19\/bernd-rucker-on-complex-event-flows-in-distributed-systems\/#primaryimage\",\"inLanguage\":\"en-US\",\"url\":\"https:\/\/voxxeddays.com\/microservices\/wp-content\/uploads\/sites\/54\/2019\/09\/Bannie\\u0300re-Bernd-Ru\\u0308cker_Plan-de-travail-1.png\",\"width\":1024,\"height\":513,\"caption\":\"Bernd Ru\\u0308cker\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/voxxeddays.com\/microservices\/2019\/09\/19\/bernd-rucker-on-complex-event-flows-in-distributed-systems\/#webpage\",\"url\":\"https:\/\/voxxeddays.com\/microservices\/2019\/09\/19\/bernd-rucker-on-complex-event-flows-in-distributed-systems\/\",\"name\":\"Bernd R\\u00fccker on \\u201cComplex event flows in distributed systems\\u201d : Voxxed Days Microservices 2019\",\"isPartOf\":{\"@id\":\"https:\/\/voxxeddays.com\/microservices\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/voxxeddays.com\/microservices\/2019\/09\/19\/bernd-rucker-on-complex-event-flows-in-distributed-systems\/#primaryimage\"},\"datePublished\":\"2019-09-19T07:00:14+00:00\",\"dateModified\":\"2019-09-18T14:51:12+00:00\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/voxxeddays.com\/microservices\/2019\/09\/19\/bernd-rucker-on-complex-event-flows-in-distributed-systems\/\"]}]},{\"@type\":\"Article\",\"@id\":\"https:\/\/voxxeddays.com\/microservices\/2019\/09\/19\/bernd-rucker-on-complex-event-flows-in-distributed-systems\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/voxxeddays.com\/microservices\/2019\/09\/19\/bernd-rucker-on-complex-event-flows-in-distributed-systems\/#webpage\"},\"author\":{\"@id\":\"https:\/\/voxxeddays.com\/microservices\/#\/schema\/person\/871a4bfea3b1bf117a77bc3fbfeb5f14\"},\"headline\":\"Bernd R\\u00fccker on \\u201cComplex event flows in distributed systems\\u201d\",\"datePublished\":\"2019-09-19T07:00:14+00:00\",\"dateModified\":\"2019-09-18T14:51:12+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/voxxeddays.com\/microservices\/2019\/09\/19\/bernd-rucker-on-complex-event-flows-in-distributed-systems\/#webpage\"},\"publisher\":{\"@id\":\"https:\/\/voxxeddays.com\/microservices\/#organization\"},\"image\":{\"@id\":\"https:\/\/voxxeddays.com\/microservices\/2019\/09\/19\/bernd-rucker-on-complex-event-flows-in-distributed-systems\/#primaryimage\"},\"articleSection\":\"all\",\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/voxxeddays.com\/microservices\/#\/schema\/person\/871a4bfea3b1bf117a77bc3fbfeb5f14\",\"name\":\"Antonio Goncalves\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/voxxeddays.com\/microservices\/#personlogo\",\"inLanguage\":\"en-US\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/1fc6aa04011b2f0f9721df913b0fd415?s=96&d=mm&r=g\",\"caption\":\"Antonio Goncalves\"},\"description\":\"I am a senior software architect living in Paris. I work as a consultant in helping customers to set up their software architecture. My specialities are Java \/ Java EE and Open Source frameworks that evolve around it. As a former BEA consultant I have a great expertise in application servers (Weblogic, JBoss and GlassFish). So I decided to write a few books about it, create the Paris JUG and Devoxx France.\",\"sameAs\":[\"https:\/\/plus.google.com\/101641663893160877351\",\"https:\/\/twitter.com\/agoncal\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","_links":{"self":[{"href":"https:\/\/voxxeddays.com\/microservices\/wp-json\/wp\/v2\/posts\/2529"}],"collection":[{"href":"https:\/\/voxxeddays.com\/microservices\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/voxxeddays.com\/microservices\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/voxxeddays.com\/microservices\/wp-json\/wp\/v2\/users\/1301"}],"replies":[{"embeddable":true,"href":"https:\/\/voxxeddays.com\/microservices\/wp-json\/wp\/v2\/comments?post=2529"}],"version-history":[{"count":0,"href":"https:\/\/voxxeddays.com\/microservices\/wp-json\/wp\/v2\/posts\/2529\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/voxxeddays.com\/microservices\/wp-json\/wp\/v2\/media\/2532"}],"wp:attachment":[{"href":"https:\/\/voxxeddays.com\/microservices\/wp-json\/wp\/v2\/media?parent=2529"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/voxxeddays.com\/microservices\/wp-json\/wp\/v2\/categories?post=2529"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/voxxeddays.com\/microservices\/wp-json\/wp\/v2\/tags?post=2529"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}