{"id":1370,"date":"2018-09-09T10:41:15","date_gmt":"2018-09-09T08:41:15","guid":{"rendered":"https:\/\/voxxeddays.com\/microservices2019\/?p=1370"},"modified":"2018-09-09T10:41:15","modified_gmt":"2018-09-09T08:41:15","slug":"workshop-on-microservices-boundaries","status":"publish","type":"post","link":"https:\/\/voxxeddays.com\/microservices\/2018\/09\/09\/workshop-on-microservices-boundaries\/","title":{"rendered":"Workshop on Microservices Boundaries"},"content":{"rendered":"<h3>Hi all, tell us who you are and what lead you into microservices?<\/h3>\n<p>We are R\u00e9gina ten Bruggencate and Linda van der Pal both Java developers at Trailblazers and Java Champions. We attend and speak at a lot of conferences and heard a lot about microservices, but most of the talks were about framework X or Y and how they would allow you to build microservices lightning fast. This got us to wondering how we could split up our big old monoliths. Linda attended a workshop at the XPdays Benelux by Koen Metsu and Erik Talboom. It was a lovely workshop with a great concept, but it didn&#8217;t quite go into the level of details she had hoped for. Since the best way to learn is to teach, she asked their permission to use their idea and work it into a workshop of her own. R\u00e9gina liked the idea too, and so we set out together to submit the workshop to a couple of conferences.<\/p>\n<p>My name is Gunnar Morling; I\u2019m a software engineer working at Red Hat, where I\u2019m leading the <a href=\"http:\/\/debezium.io\">Debezium<\/a> project. Debezium is a platform for change data capture (CDC), allowing you to react to all the changes in your database in near real-time. CDC is not only very useful for use cases like replication or updating full-text search indexes, but also comes in handy for microservice architectures where it for instance can be used to propagate data between different services.<\/p>\n<p>I\u2019m Emmanuel Bernard and am a Hibernate contributor, Java Champion and Chief Architect, Data at Red Hat middleware. I\u2019ve always been involved in improving how to process data from within applications. With microservices, the challenge is more complex because it involves inter system data communication. Even more fun.<\/p>\n<h3>During this one day workshop, what should the attendees expect? What would they learn?<\/h3>\n<p>During the first half of the workshop we will talk about actually splitting up a real life problem and how you accomplish that. We will give a brief introduction into Domain Driven Design and how you can use that to track down the borders along which you can split your problem. After that we will split up into pairs and get cracking. We will start by looking at a real world problem, and then we\u2019ll have a brainstorm session to determine what could be the microservices. Then we split up the group into pairs and will start coding. The participants can use whatever framework they like to build a microservice.<\/p>\n<p>Of course different microservices don\u2019t exist in isolation, very often they\u2019ll have to exchange data. That\u2019s an interesting challenge, esp. as you\u2019d like to avoid a tight coupling between services and make sure you don\u2019t create a \u201cdistributed monolith\u201d. This is what we\u2019ll deal with in the second part of the workshop: attendees will learn how microservices can produce and consume data streams using tools such as Kafka, Debezium and Kubernetes. They\u2019ll also learn how easy it is to set up streams with the changes from a database, without any application changes needed. This all helps with creating loosely coupled microservices. We\u2019ve also planned to discuss some operational aspects such as setting up Kafka on Kubernetes\/OpenShift using the Strimzi project, monitoring etc.<\/p>\n<h3>So people come to your workshop, create teams, model microservices, implement them, and deal with data synchronization? So will they come out convinced that having a single database for all microservices is bad?<\/h3>\n<p>People should leave the workshop with a solid understanding of how DDD can be used to model microservices and define their boundaries and how streaming-based communication approaches can help different microservices to cross these boundaries.<\/p>\n<p>Indeed, using a single database for multiple services is something we\u2019d usually not recommend, as it\u2019ll create a tighter coupling between services than desirable. E.g. a database upgrade could impact multiple services instead of just a single one, giving away one of the advantages of microservice architectures.<\/p>\n<h3>Sounds good, see you soon then<\/h3>\n<p>Thanks a lot! We\u2019re very happy to be part of the first VoxxedDays Microservices and look forward very much to the conference and our workshop. See you in Paris!<\/p>\n<p><strong>#DDD #SplittingMonoliths #DataStreaming #Debezium<\/strong><\/p>\n<p>Twitter: <a href=\"https:\/\/twitter.com\/reginatb38\">@reginatb38<\/a><br \/>\nLinkedIn: <a href=\"https:\/\/www.linkedin.com\/in\/reginatb\">https:\/\/www.linkedin.com\/in\/reginatb<\/a><\/p>\n<p>Twitter: <a href=\"https:\/\/twitter.com\/DuchessFounder\">@DuchessFounder<\/a><br \/>\nLinkedIn: <a href=\"https:\/\/www.linkedin.com\/in\/lvdpal\">https:\/\/www.linkedin.com\/in\/lvdpal<\/a><\/p>\n<p>Twitter: <a href=\"https:\/\/twitter.com\/gunnarmorling\">@gunnarmorling<\/a><br \/>\nBlog: <a href=\"http:\/\/in.relation.to\/gunnar-morling\">http:\/\/in.relation.to\/gunnar-morling<\/a><br \/>\nGitHub: <a href=\"http:\/\/github.com\/gunnarmorling\">http:\/\/github.com\/gunnarmorling<\/a><\/p>\n<p>Twitter: <a href=\"https:\/\/twitter.com\/emmanuelbernard\">@emmanuelbernard<\/a><br \/>\nBlog: <a href=\"https:\/\/emmanuelbernard.com\">https:\/\/emmanuelbernard.com<\/a><br \/>\nLinkedIn: <a href=\"https:\/\/fr.linkedin.com\/in\/emmanuelbernard\">https:\/\/fr.linkedin.com\/in\/emmanuelbernard<\/a><br \/>\nGitHub: <a href=\"http:\/\/github.com\/emmanuelbernard\">http:\/\/github.com\/emmanuelbernard<\/a><\/p>\n<h3><a href=\"https:\/\/vxdms2018.confinabox.com\/talks\/uni\">Check the other workshops<\/a><\/h3>\n","protected":false},"excerpt":{"rendered":"<p>Hi all, tell us who you are and what lead you into microservices? We are R\u00e9gina ten Bruggencate and Linda van der Pal both Java developers at Trailblazers and Java Champions. We attend and speak at a lot of conferences and heard a lot about microservices, but most of the talks were about framework X [&hellip;]<\/p>\n","protected":false},"author":1301,"featured_media":1373,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[12],"tags":[23,26,57,56],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v15.3 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Workshop on Microservices Boundaries : 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\/2018\/09\/09\/workshop-on-microservices-boundaries\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Workshop on Microservices Boundaries : Voxxed Days Microservices 2019\" \/>\n<meta property=\"og:description\" content=\"Hi all, tell us who you are and what lead you into microservices? We are R\u00e9gina ten Bruggencate and Linda van der Pal both Java developers at Trailblazers and Java Champions. We attend and speak at a lot of conferences and heard a lot about microservices, but most of the talks were about framework X [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/voxxeddays.com\/microservices\/2018\/09\/09\/workshop-on-microservices-boundaries\/\" \/>\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=\"2018-09-09T08:41:15+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/voxxeddays.com\/microservices\/wp-content\/uploads\/sites\/54\/2018\/07\/W-How-to-Build-Them-and-How-to-Cross-Them.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=\"3 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\/2018\/09\/09\/workshop-on-microservices-boundaries\/#primaryimage\",\"inLanguage\":\"en-US\",\"url\":\"https:\/\/voxxeddays.com\/microservices\/wp-content\/uploads\/sites\/54\/2018\/07\/W-How-to-Build-Them-and-How-to-Cross-Them.png\",\"width\":1024,\"height\":513,\"caption\":\"Workshop How to Build Them and How to Cross Them\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/voxxeddays.com\/microservices\/2018\/09\/09\/workshop-on-microservices-boundaries\/#webpage\",\"url\":\"https:\/\/voxxeddays.com\/microservices\/2018\/09\/09\/workshop-on-microservices-boundaries\/\",\"name\":\"Workshop on Microservices Boundaries : Voxxed Days Microservices 2019\",\"isPartOf\":{\"@id\":\"https:\/\/voxxeddays.com\/microservices\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/voxxeddays.com\/microservices\/2018\/09\/09\/workshop-on-microservices-boundaries\/#primaryimage\"},\"datePublished\":\"2018-09-09T08:41:15+00:00\",\"dateModified\":\"2018-09-09T08:41:15+00:00\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/voxxeddays.com\/microservices\/2018\/09\/09\/workshop-on-microservices-boundaries\/\"]}]},{\"@type\":\"Article\",\"@id\":\"https:\/\/voxxeddays.com\/microservices\/2018\/09\/09\/workshop-on-microservices-boundaries\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/voxxeddays.com\/microservices\/2018\/09\/09\/workshop-on-microservices-boundaries\/#webpage\"},\"author\":{\"@id\":\"https:\/\/voxxeddays.com\/microservices\/#\/schema\/person\/871a4bfea3b1bf117a77bc3fbfeb5f14\"},\"headline\":\"Workshop on Microservices Boundaries\",\"datePublished\":\"2018-09-09T08:41:15+00:00\",\"dateModified\":\"2018-09-09T08:41:15+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/voxxeddays.com\/microservices\/2018\/09\/09\/workshop-on-microservices-boundaries\/#webpage\"},\"publisher\":{\"@id\":\"https:\/\/voxxeddays.com\/microservices\/#organization\"},\"image\":{\"@id\":\"https:\/\/voxxeddays.com\/microservices\/2018\/09\/09\/workshop-on-microservices-boundaries\/#primaryimage\"},\"keywords\":\"dataStreaming,DDD,Debezium,SplittingMonoliths\",\"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\/1370"}],"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=1370"}],"version-history":[{"count":0,"href":"https:\/\/voxxeddays.com\/microservices\/wp-json\/wp\/v2\/posts\/1370\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/voxxeddays.com\/microservices\/wp-json\/wp\/v2\/media\/1373"}],"wp:attachment":[{"href":"https:\/\/voxxeddays.com\/microservices\/wp-json\/wp\/v2\/media?parent=1370"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/voxxeddays.com\/microservices\/wp-json\/wp\/v2\/categories?post=1370"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/voxxeddays.com\/microservices\/wp-json\/wp\/v2\/tags?post=1370"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}