{"id":11167,"date":"2025-12-09T15:06:05","date_gmt":"2025-12-09T14:06:05","guid":{"rendered":"https:\/\/republify.se\/?post_type=product&#038;p=11167"},"modified":"2026-04-02T07:14:24","modified_gmt":"2026-04-02T06:14:24","slug":"implementing-modern-architecture","status":"publish","type":"product","link":"https:\/\/republify.se\/index.php\/produkt\/implementing-modern-architecture\/","title":{"rendered":"Implementing Modern Architecture"},"content":{"rendered":"<p><em>Participants will also learn about the pitfalls of misapplying architectural styles to certain problems. We&#8217;ll also cover topics like Microservices, CQRS, Hexagonal Architecture, Event Sourcing, System stability, Development quality, and more.<\/em><\/p>\n<p><strong>Audience<\/strong>:\u00a0Architects, Team Leads, Senior Developers<\/p>\n<p><strong>Duration<\/strong>:<br \/>\n&#8211; Day 1: Architecture and Architects, Domain-Driven Design, System Architecture, Documenting your Architecture<br \/>\n&#8211; Day 2: Communication, REST API, Coding your Architecture<br \/>\n&#8211; Day 3: Tactical DDD, Command Query Responsibility Segregation, Event Sourcing, Stability of your System, Securing your System, Monitoring your System<\/p>\n<p><strong>Format<\/strong>: 20% workshop \/ 80% lecture<\/p>\n<h2>Training program<\/h2>\n<p><strong>1. Architecture and Architects<\/strong><br \/>\na. What is \u201carchitecture\u201d?<br \/>\nb. What is good architecture?<br \/>\nc. Who is a good architect?<br \/>\nd. Architectural drivers<\/p>\n<p><strong>2. Domain-Driven Design<\/strong><br \/>\na. Why use DDD?<br \/>\nb. How to discover a Bounded Context?<\/p>\n<p><strong>3. System Architecture<\/strong><br \/>\na. Monolith<br \/>\nb. Microservices<br \/>\nc. Modular Monolith<br \/>\nd. How to make a choice?<br \/>\ne. A path from Monolith to Microservices<\/p>\n<p><strong>4. Documenting your Architecture<\/strong><br \/>\na. Sharing main decisions<br \/>\nb. Visualizing architecture<\/p>\n<p><strong>5. Communication<\/strong><br \/>\na. Synchronous and Asynchronous communication<br \/>\nb. Commands vs Events<br \/>\nc. Big and Small Events<br \/>\nd. Message Naming<br \/>\ne. Event Choreography and Orchestration<br \/>\nf. Message Concurrency<br \/>\ng. Message Processing Order<br \/>\nh. Dealing with Errors<br \/>\ni. Idempotent Consumers<br \/>\nj. Outbox and Inbox<\/p>\n<p><strong>6. REST API<\/strong><br \/>\na. General principles<br \/>\nb. Task-based REST API<br \/>\nc. Dealing with Errors: Problem Details<\/p>\n<p><strong>7. Coding your Architecture<\/strong><br \/>\na. Project structure<br \/>\nb. Applying Hexagonal Architecture principles<br \/>\nc. Package structure<br \/>\nd. Code quality automation<\/p>\n<p><strong>8. Tactical Domain-Driven Design<\/strong><br \/>\na. Designing Aggregates and Value Objects<br \/>\nb. Ensuring Invariants in Domain Model<\/p>\n<p><strong>9. Command Query Responsibility Segregation<\/strong><\/p>\n<p><strong>10. Event Sourcing: advantages and challenges<\/strong><\/p>\n<p><strong>11. Stability of your System<\/strong><br \/>\na. Common failures and stability antipatterns<br \/>\nb. Stability patterns<\/p>\n<p><strong>12. Securing your System<\/strong><\/p>\n<p><strong>13. Monitoring your System<\/strong><br \/>\na. Aspects of monitoring<br \/>\nb. Metrics to expose<\/p>\n<p>&nbsp;<\/p>\n<h3>About the trainers<\/h3>\n<p><strong><img decoding=\"async\" class=\"alignleft size-thumbnail wp-image-11169 lazyload\" data-src=\"https:\/\/republify.se\/wp-content\/uploads\/2025\/12\/vadzim-150x150.jpg\" alt=\"\" width=\"150\" height=\"150\" data-srcset=\"https:\/\/republify.se\/wp-content\/uploads\/2025\/12\/vadzim-150x150.jpg 150w, https:\/\/republify.se\/wp-content\/uploads\/2025\/12\/vadzim-300x300.jpg 300w, https:\/\/republify.se\/wp-content\/uploads\/2025\/12\/vadzim-100x100.jpg 100w\" data-sizes=\"(max-width: 150px) 100vw, 150px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 150px; --smush-placeholder-aspect-ratio: 150\/150;\" \/>Vadzim Prudnikau<\/strong><br \/>\nArchitect \/ Team Lead \/ Senior Developer &#8211; Hands-on Architect, IT Trainer, and Conference Speaker with 20+ years of experience (7 years in the Norwegian market), passionate about building high-quality software, mentoring developers, and sharing knowledge. I\u2019ve trained over 600 professionals in Architecture, EventStorming, and TDD, built and deployed more than 10 production-ready projects, led multiple development teams, and created a successful Java department from scratch. Along the way, I\u2019ve mentored 20+ developers and conducted 100+ technical interviews. &#8211; My expertise lies in Java, but I also have experience with Kotlin, Groovy, and other programming languages. I believe that strong technical skills, continuous learning, teamwork, and knowledge-sharing are the keys to success in software development.<\/p>\n<p>&nbsp;<\/p>\n<p><strong><img decoding=\"async\" class=\"alignleft size-thumbnail wp-image-11170 lazyload\" data-src=\"https:\/\/republify.se\/wp-content\/uploads\/2025\/12\/marek-150x150.jpg\" alt=\"\" width=\"150\" height=\"150\" data-srcset=\"https:\/\/republify.se\/wp-content\/uploads\/2025\/12\/marek-150x150.jpg 150w, https:\/\/republify.se\/wp-content\/uploads\/2025\/12\/marek-300x300.jpg 300w, https:\/\/republify.se\/wp-content\/uploads\/2025\/12\/marek-100x100.jpg 100w\" data-sizes=\"(max-width: 150px) 100vw, 150px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 150px; --smush-placeholder-aspect-ratio: 150\/150;\" \/>Marek Dominiak<\/strong><br \/>\nOwner of a Software Company \/ Architect \/ Lead Developer &#8211; I\u2019m a CTO of a software house, a hands-on architect, and a Trainer with 18 years of experience (15 years in Norwegian market) mainly in the Java world. I\u2019ve spent a lot of time mentoring developers and leading teams, with a big focus on creating sustainable solutions \u2013 systems that will last for many years. This set me on the path of learning about Software Craftsmanship, Domain-Driven Design, and code quality early on. I\u2019ve completed many small and large projects that run in production, interviewed developers, handled communication with customers, helped design Architecture for entire systems and delivered them, and introduced many technologies proven in production. I\u2019ve trained more than 600 people in modern architecture and testing. I like to share my knowledge at conferences related to software development. On some occasions I\u2019m speaker on Software Development conferences: NDC Oslo, Javazone, DevoxxPL, DevoxUK, JPrime, JDD, Warsaw IT Days,\u2026)<\/p>\n<p>&nbsp;<\/p>\n<h4>Quotes from previous course participants<\/h4>\n<p>\u201cThe course is packed with real-life examples by two battle hardened architects that help you to understand the topics better.\u201d<\/p>\n<p>\u201cWhat made this course exceptional was its practicality; it equipped us with actionable knowledge that can be applied in real projects.\u201d<\/p>\n<p>\u201cThe course was very well structured and Marek and Vadzim were skilled at running a course packed with interesting content, all the while making sure we had time to discuss and talk about the subject matter at hand.\u201d<\/p>\n<p>\u201cMarek and Vadzim are excellent communicators and presenters. They used clear and understandable language to describe complex concepts with code, slides and real-life examples. They included all the participants in the discussion and team challenges to test our knowledge.\u201d<\/p>\n<p>\u201cI signed up for this course with three clear goals in mind: to learn new concepts for effective architecture, deepen my understanding of the architectural principles I already apply, and identify areas where I need to grow further. By the end of the course, I not only achieved all these<br \/>\nobjectives but also gained insights I hadn\u2019t expected.\u201d<\/p>\n<p><strong>Some statistics<\/strong><\/p>\n<ul>\n<li>42 on-site courses conducted<\/li>\n<li>623 persons educated<\/li>\n<li>43 companies served<\/li>\n<li>Satisfaction level: 94.8% (based on real feedback given after each course)<\/li>\n<\/ul>\n<p><img decoding=\"async\" class=\"aligncenter wp-image-11171 size-large lazyload\" data-src=\"https:\/\/republify.se\/wp-content\/uploads\/2025\/12\/1-1024x707.png\" alt=\"\" width=\"1024\" height=\"707\" data-srcset=\"https:\/\/republify.se\/wp-content\/uploads\/2025\/12\/1-1024x707.png 1024w, https:\/\/republify.se\/wp-content\/uploads\/2025\/12\/1-300x207.png 300w, https:\/\/republify.se\/wp-content\/uploads\/2025\/12\/1-768x530.png 768w, https:\/\/republify.se\/wp-content\/uploads\/2025\/12\/1-1536x1060.png 1536w, https:\/\/republify.se\/wp-content\/uploads\/2025\/12\/1-600x414.png 600w, https:\/\/republify.se\/wp-content\/uploads\/2025\/12\/1.png 1629w\" data-sizes=\"(max-width: 1024px) 100vw, 1024px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1024px; --smush-placeholder-aspect-ratio: 1024\/707;\" \/><\/p>\n<p>&nbsp;<\/p>\n<h3>This training is delivered in cooperation with Trainitek<\/h3>\n","protected":false},"excerpt":{"rendered":"<p><strong>To be a successful architect, one needs to understand the pros and cons of different architectures and under what conditions they are applied in a project. In addition, a good knowledge of the development process and production support is also very valuable.<\/strong><\/p>\n<p>In this training, we will go on a journey starting with the definition of architecture and continuing with Domain-Driven Design, System Architecture, coding it, and finishing with running our Architecture in production<\/p>\n","protected":false},"featured_media":11172,"comment_status":"open","ping_status":"closed","template":"","meta":{"wds_primary_product_brand":0,"wds_primary_product_cat":0},"product_brand":[],"product_cat":[148,39],"product_tag":[217,220,216,122,125,218,222,221,219,223],"class_list":{"0":"post-11167","1":"product","2":"type-product","3":"status-publish","4":"has-post-thumbnail","6":"product_cat-architecture","7":"product_cat-systemutveckling","8":"product_tag-architectural-decisions","9":"product_tag-architectural-patterns","10":"product_tag-architecture","11":"product_tag-cqrs","12":"product_tag-domain-driven-design","13":"product_tag-event-driven-architecture","14":"product_tag-event-sourcing","15":"product_tag-hexagonal-architecture","16":"product_tag-microservices","17":"product_tag-system-design","19":"first","20":"instock","21":"taxable","22":"shipping-taxable","23":"purchasable","24":"product-type-simple"},"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/republify.se\/index.php\/wp-json\/wp\/v2\/product\/11167","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/republify.se\/index.php\/wp-json\/wp\/v2\/product"}],"about":[{"href":"https:\/\/republify.se\/index.php\/wp-json\/wp\/v2\/types\/product"}],"replies":[{"embeddable":true,"href":"https:\/\/republify.se\/index.php\/wp-json\/wp\/v2\/comments?post=11167"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/republify.se\/index.php\/wp-json\/wp\/v2\/media\/11172"}],"wp:attachment":[{"href":"https:\/\/republify.se\/index.php\/wp-json\/wp\/v2\/media?parent=11167"}],"wp:term":[{"taxonomy":"product_brand","embeddable":true,"href":"https:\/\/republify.se\/index.php\/wp-json\/wp\/v2\/product_brand?post=11167"},{"taxonomy":"product_cat","embeddable":true,"href":"https:\/\/republify.se\/index.php\/wp-json\/wp\/v2\/product_cat?post=11167"},{"taxonomy":"product_tag","embeddable":true,"href":"https:\/\/republify.se\/index.php\/wp-json\/wp\/v2\/product_tag?post=11167"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}