{"id":24605,"date":"2021-09-23T13:14:08","date_gmt":"2021-09-23T11:14:08","guid":{"rendered":"https:\/\/sixphere.com\/blog\/clean-architectures-and-ddd-a-practical-journey-part-1\/"},"modified":"2025-03-27T16:05:36","modified_gmt":"2025-03-27T15:05:36","slug":"clean-architectures-and-ddd-a-practical-journey-part-1","status":"publish","type":"post","link":"https:\/\/sixphere.com\/en\/blog\/clean-architectures-and-ddd-a-practical-journey-part-1\/","title":{"rendered":"Clean Architectures and DDD: A Practical Journey. Part 1"},"content":{"rendered":"\n<div class=\"et_d4_element et_pb_section et_pb_section_0  et_pb_css_mix_blend_mode et_section_regular et_block_section\" >\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t<div class=\"et_d4_element et_pb_row et_pb_row_0  et_pb_css_mix_blend_mode et_block_row\">\n\t\t\t\t<div class=\"et_d4_element et_pb_column_4_4 et_pb_column et_pb_column_0  et_pb_css_mix_blend_mode et-last-child et_block_column\">\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t<div class=\"et_pb_module et_d4_element et_pb_text et_pb_text_0  et_pb_text_align_left et_pb_bg_layout_light\">\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t<div class=\"et_pb_text_inner\"><h1><\/h1><\/div>\n\t\t\t<\/div><div class=\"et_pb_module et_d4_element et_pb_text et_pb_text_1  et_pb_text_align_left et_pb_bg_layout_light\">\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t<\/div><div class=\"et_d4_element et_pb_row et_pb_row_1  et_pb_css_mix_blend_mode et_block_row\">\n\t\t\t\t<div class=\"et_d4_element et_pb_column_4_4 et_pb_column et_pb_column_1  et_pb_css_mix_blend_mode et-last-child et_block_column\">\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t<div class=\"et_pb_module et_d4_element et_pb_text et_pb_text_2  et_pb_text_align_left et_pb_bg_layout_light\">\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t<div class=\"et_pb_text_inner\"><p>When tackling <a href=\"https:\/\/sixphere.com\/en\/software-development-and-technology\/\"><span style=\"text-decoration: underline;\">a new software project<\/span><\/a> involving multiple <em>stakeholders<\/em>, various components or third-party systems, or aiming to implement large business workflows essentially, a project with a high level of complexity the same question arises: What design strategy should be adopted? What business language should be used? What technological architecture patterns should be applied?  <\/p>\n<p>The answers to these questions should always be based on the analysis of aspects such as the required maintainability, the level of integration, scalability, or simply the implementation cost. However, one key aspect <strong>is often overlooked: the language<\/strong>. This is nothing more than the mechanism or point of connection that should allow the link between the business world to be digitized and the final digital product. In other words, the aspect that will determine success.  <\/p>\n<p>At what point does the concept of <strong>clean architectures and DDD<\/strong> (<em>Domain-Driven Design<\/em>) come into play? How do they help work on and optimize this key aspect? To begin, this article will address basic architectural concepts.  <\/p><\/div>\n\t\t\t<\/div><div class=\"et_pb_module et_d4_element et_pb_text et_pb_text_3  et_pb_text_align_left et_pb_bg_layout_light\">\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t<div class=\"et_pb_text_inner\"><h3>Clean Architectures and the Magic Hexagon<\/h3>\nThe hexagonal architecture is based on the following fundamental principles and objectives:\n<ul>\n\t<li>Explicitly and decisively separate the user, business, and server layers.<\/li>\n\t<li>Derive and push the dependencies from the user and server layers towards the business logic.<\/li>\n\t<li>Isolate and make each layer as independent as possible, eliminating improper couplings and giving each component a very specific responsibility.<\/li>\n<\/ul><\/div>\n\t\t\t<\/div><div class=\"et_pb_module et_d4_element et_pb_image et_pb_image_0\">\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t<span class=\"et_pb_image_wrap \"><img loading=\"lazy\" decoding=\"async\" width=\"1400\" height=\"1008\" src=\"https:\/\/puntazo.sixphere.com\/wp-content\/uploads\/2021\/09\/4c56a51a-964d-4546-b8e0-0e658535e87c.png\" alt=\"Hexagonal architecture diagram\" title=\"Hexagonal architecture diagram\" srcset=\"https:\/\/sixphere.com\/wp-content\/uploads\/2021\/09\/4c56a51a-964d-4546-b8e0-0e658535e87c.png 1400w, https:\/\/sixphere.com\/wp-content\/uploads\/2021\/09\/4c56a51a-964d-4546-b8e0-0e658535e87c-1280x922.png 1280w, https:\/\/sixphere.com\/wp-content\/uploads\/2021\/09\/4c56a51a-964d-4546-b8e0-0e658535e87c-980x706.png 980w, https:\/\/sixphere.com\/wp-content\/uploads\/2021\/09\/4c56a51a-964d-4546-b8e0-0e658535e87c-480x346.png 480w\" sizes=\"(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) and (max-width: 1280px) 1280px, (min-width: 1281px) 1400px, 100vw\" class=\"wp-image-18617\" \/><\/span>\n\t\t\t<\/div><div class=\"et_pb_module et_d4_element et_pb_text et_pb_text_4  et_pb_text_align_left et_pb_bg_layout_light\">\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t<div class=\"et_pb_text_inner\"><p>From a practical point of view, this architectural principle is based on an idea as old as it is effective: <strong>divide and conquer<\/strong>. Separating or breaking the problem into independent pieces will not only make it easier to understand the overall problem, but it will also simplify the implementation of the solution and its subsequent maintenance. On the other hand, it paves the way for greater extensibility and scalability.  <\/p>\n<p>Would you like to dive deeper into this architectural principle? <span style=\"text-decoration: underline;\"><a href=\"https:\/\/blog.octo.com\/en\/hexagonal-architecture-three-principles-and-an-implementation-example\/\">This article will be very helpful<\/a><\/span>. Let\u2019s explore briefly and concisely each of the main components of hexagonal architecture. <\/p>\n<h3>Presentation layer<\/h3>\n<p>It is simply the <strong>final user interface<\/strong>. Broadly speaking, it is responsible for displaying information to the user, interpreting their commands, and triggering the relevant business actions by communicating with the other involved layers. <\/p>\n<p>It is important to highlight that, at times and quite frequently, the user or external actor is identified as a human being. Nothing could be further from the truth. <strong>The end user can be any other entity<\/strong>: a machine, <strong>an IoT device<\/strong>, another computer system, etc. This is a crucial point to consider when designing this layer.  <\/p>\n<h3>Application layer<\/h3>\n<p>It defines the tasks that the <em>software <\/em>must perform and directs the expressive domain objects to <strong>solve the problems<\/strong>. The tasks handled by this layer are significant for the business or necessary for interacting with the application layers of other systems. <\/p>\n<p>This layer remains \"thin.\" It does not contain business rules or knowledge; instead, it simply <strong>coordinates tasks and delegates the work<\/strong> to the domain object collaborations in the next layer. It does not have state that reflects the business situation, but it may have state that reflects the progress of a task for the user or the program.  <\/p>\n<h3>Domain layer<\/h3>\n<p>Also called the model layer. It is the component of the architecture <strong>responsible for representing business concepts<\/strong>, information about the business situation, and business rules. The state that reflects the company's situation through its digital system is controlled and used here, although the technical details of its storage are delegated to the infrastructure.  <\/p>\n<p>In short, it is the component that <strong>implements the company\u2019s workflows<\/strong> or production processes using a language very close to the business domain.<\/p>\n<h3>Infrastructure layer<\/h3>\n<p>This layer provides the <strong>generic technical capabilities<\/strong> that support the upper layers: message sending for the application, persistence for the domain, rendering <em>widgets <\/em>for the UI, etc. It is also responsible for the connection with external systems\/agents outside our domain. <\/p>\n<p>The infrastructure layer can also support the pattern of interactions between the four layers through an architectural framework and is also referred to as the<strong> anticorruption layer<\/strong> because it prevents the business layers from being \"contaminated\" with elements that are actually external to it.<\/p>\n<p>Would you like more information? <span style=\"text-decoration: underline;\"><a href=\"https:\/\/netflixtechblog.com\/ready-for-changes-with-hexagonal-architecture-b315ec967749\">Take a look at this post<\/a><\/span>.<\/p>\n<p><em><strong>In the next chapter of this series<\/strong>, a real-world problem will be presented along with the design of the solution, applying this and other principles.<\/em><\/p><\/div>\n\t\t\t<\/div><div class=\"et_pb_button_module_wrapper et_pb_button_0_wrapper et_pb_button_alignment_center et_pb_module \">\n\t\t\t\t<a class=\"et_pb_button et_d4_element et_pb_button_0 et_pb_bg_layout_light et_block_module\" href=\"https:\/\/sixphere.com\/blog\/arquitecturas-limpias-ddd-parte-2\/\">Clean architectures and DDD: A practical journey. Part 2 <\/a>\n\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t<\/div><div class=\"et_d4_element et_pb_row et_pb_row_2  et_pb_css_mix_blend_mode et_block_row\">\n\t\t\t\t<div class=\"et_d4_element et_pb_column_4_4 et_pb_column et_pb_column_2  et_pb_css_mix_blend_mode et-last-child et_block_column\">\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t<div class=\"et_pb_module et_d4_element et_pb_text et_pb_text_5  et_pb_text_align_left et_pb_bg_layout_light\">\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t<div class=\"et_pb_text_inner\"><h2 style=\"font-size: 30px;\">Want to take the first step in digitalization? Call us with no obligation, and we'll design your Minimum Viable Product. <\/h2><\/div>\n\t\t\t<\/div><div class=\"et_pb_button_module_wrapper et_pb_button_1_wrapper et_pb_button_alignment_center et_pb_module \">\n\t\t\t\t<a class=\"et_pb_button et_d4_element et_pb_button_1 et_pb_bg_layout_light et_block_module\" href=\"https:\/\/meetings.hubspot.com\/jesus-maria-jurado\" target=\"_blank\">Schedule a meeting with us<\/a>\n\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t<\/div>\n\t\t\t\t\n\t\t\t\t\n\t\t\t<\/div><div class=\"et_d4_element et_pb_section et_pb_section_1 more-related-blogs-section et_pb_with_background  et_pb_css_mix_blend_mode et_section_regular et_block_section\" >\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t<div class=\"et_d4_element et_pb_row et_pb_row_3  et_pb_css_mix_blend_mode et_block_row\">\n\t\t\t\t<div class=\"et_d4_element et_pb_column_4_4 et_pb_column et_pb_column_3  et_pb_css_mix_blend_mode et-last-child et_block_column\">\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t<div class=\"et_pb_module et_d4_element et_pb_text et_pb_text_6  et_pb_text_align_left et_pb_bg_layout_light\">\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t<div class=\"et_pb_text_inner\"><h3 style=\"font-size: 40px\">Here you have <span style=\"color: #ffa327;\">more<\/span><\/h3><\/div>\n\t\t\t<\/div><div class=\"et_pb_module et_d4_element dsm_button dsm_button_0 et_pb_bg_layout_light\">\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t<div class=\"et_pb_module_inner\">\n\t\t\t\t\t<div class=\"et_pb_button_module_wrappers dsm_button_0_wrapper  et_pb_module\">\n\t\t\t\t<a class=\"et_pb_button et_pb_button_one et_pb_bg_layout_light dsm-none \"  href=\"https:\/\/sixphere.com\/en\/sixphere-world-blogs-news\/\" data-dsm-lightbox-id=\"dsm_button_one_lightbox dsm_button_0\">All blogs<\/a>\n\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t<\/div><div class=\"et_d4_element et_pb_row et_pb_row_4  et_pb_css_mix_blend_mode et_block_row\">\n\t\t\t\t<div class=\"et_d4_element et_pb_column_4_4 et_pb_column et_pb_column_4  et_pb_css_mix_blend_mode et-last-child et_block_column\">\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t<div class=\"et_pb_with_border et_pb_module et_d4_element et_pb_blog_0  et_pb_css_mix_blend_mode et_pb_blog_grid_wrapper et_pb_bg_layout_light\">\n\t\t\t\t\t<div class=\"et_pb_blog_grid clearfix \">\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t<div class=\"et_pb_ajax_pagination_container\">\n\t\t\t\t\t\t<div class=\"et_pb_salvattore_content\" data-columns>\n\t\t\t<article id=\"post-25657\" class=\"et_pb_post clearfix et_pb_blog_item_0_0 post-25657 post type-post status-publish format-standard has-post-thumbnail hentry category-automation-iiot category-ia-machine-learning-en category-sin-categoria category-technology-innovation tag-digital-transformation tag-edge-iot-en tag-machine-learning-en\">\n\n\t\t\t\t<div class=\"et_pb_image_container\"><a href=\"https:\/\/sixphere.com\/en\/blog\/from-pixels-to-action-how-we-developed-the-brain-of-an-autonomous-rover-with-embedded-computer-vision\/\" class=\"entry-featured-image-url\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/sixphere.com\/wp-content\/uploads\/2025\/10\/rover-400x250.png\" alt=\"From pixels to action: how we developed the brain of an autonomous rover with embedded computer vision\" class=\"\" srcset=\"https:\/\/sixphere.com\/wp-content\/uploads\/2025\/10\/rover-e1760106930778.png 479w, https:\/\/sixphere.com\/wp-content\/uploads\/2025\/10\/rover-400x250.png 480w \" sizes=\"(max-width:479px) 479px, 100vw \"  width=\"400\" height=\"250\" \/><\/a><\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<h4 class=\"entry-title\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/sixphere.com\/en\/blog\/from-pixels-to-action-how-we-developed-the-brain-of-an-autonomous-rover-with-embedded-computer-vision\/\">From pixels to action: how we developed the brain of an autonomous rover with embedded computer vision<\/a>\n\t\t\t\t\t\t\t\t\t\t\t<\/h4>\n\t\t\t\t\n\t\t\t\t\t<p class=\"post-meta\"><span class=\"published\">10 October 2025<\/span><\/p><div class=\"post-content\"><div class=\"post-content-inner\"><p>Our team faced the challenge of developing the complete brain for an autonomous rover, a system that required visual perception and real-time decision-making on low-power hardware. This case study is a technical deep dive into our process: from the implementation of the Mask R-CNN segmentation model for accurate object identification, to the acceleration of performance on a Raspberry Pi using a Coral TPU accelerator. Discover how we overcame the challenges of model optimization and quantization in TensorFlow to deliver a robust and efficient Edge AI solution for intelligent automation.  <\/p>\n<\/div><a href=\"https:\/\/sixphere.com\/en\/blog\/from-pixels-to-action-how-we-developed-the-brain-of-an-autonomous-rover-with-embedded-computer-vision\/\" class=\"more-link\">read more<\/a><\/div>\t\t\t\n\t\t\t<\/article>\n\t\t\t\t\n\t\t\t<article id=\"post-24559\" class=\"et_pb_post clearfix et_pb_blog_item_0_1 post-24559 post type-post status-publish format-standard has-post-thumbnail hentry category-digitalization category-paperless-document-management category-production tag-document-management tag-industry-4-0 tag-paperless-en\">\n\n\t\t\t\t<div class=\"et_pb_image_container\"><a href=\"https:\/\/sixphere.com\/en\/blog\/json-schema-and-its-role-in-document-digitalization\/\" class=\"entry-featured-image-url\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/sixphere.com\/wp-content\/uploads\/2024\/12\/pexels-tima-miroshnichenko-5717310-1-400x250.jpg\" alt=\"JSON Schema and its role in document digitalization\" class=\"\" srcset=\"https:\/\/sixphere.com\/wp-content\/uploads\/2024\/12\/pexels-tima-miroshnichenko-5717310-1-scaled.jpg 479w, https:\/\/sixphere.com\/wp-content\/uploads\/2024\/12\/pexels-tima-miroshnichenko-5717310-1-400x250.jpg 480w \" sizes=\"(max-width:479px) 479px, 100vw \"  width=\"400\" height=\"250\" \/><\/a><\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<h4 class=\"entry-title\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/sixphere.com\/en\/blog\/json-schema-and-its-role-in-document-digitalization\/\">JSON Schema and its role in document digitalization<\/a>\n\t\t\t\t\t\t\t\t\t\t\t<\/h4>\n\t\t\t\t\n\t\t\t\t\t<p class=\"post-meta\"><span class=\"published\">2 December 2024<\/span><\/p><div class=\"post-content\"><div class=\"post-content-inner\"><p>In the industrial sector, all manufacturing processes and items are documented. In this blog, we present the benefits of using the JSON Schema standard and the power of this technology when integrated with the Formly library to visualize and manage paperless documentation, eliminating large volumes of physical paper. <\/p>\n<\/div><a href=\"https:\/\/sixphere.com\/en\/blog\/json-schema-and-its-role-in-document-digitalization\/\" class=\"more-link\">read more<\/a><\/div>\t\t\t\n\t\t\t<\/article>\n\t\t\t\t\n\t\t\t<article id=\"post-24615\" class=\"et_pb_post clearfix et_pb_blog_item_0_2 post-24615 post type-post status-publish format-standard has-post-thumbnail hentry category-digitalization category-production tag-digital-transformation tag-industry-4-0\">\n\n\t\t\t\t<div class=\"et_pb_image_container\"><a href=\"https:\/\/sixphere.com\/en\/blog\/digitalization-of-processes-key-phases-and-tasks\/\" class=\"entry-featured-image-url\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/sixphere.com\/wp-content\/uploads\/2021\/02\/SIXPHERE-5-herramientas-para-responsables-de-una-planta-industrial-400x250.jpg\" alt=\"Digitalization of processes: key phases and tasks\" class=\"\" srcset=\"https:\/\/sixphere.com\/wp-content\/uploads\/2021\/02\/SIXPHERE-5-herramientas-para-responsables-de-una-planta-industrial.jpg 479w, https:\/\/sixphere.com\/wp-content\/uploads\/2021\/02\/SIXPHERE-5-herramientas-para-responsables-de-una-planta-industrial-400x250.jpg 480w \" sizes=\"(max-width:479px) 479px, 100vw \"  width=\"400\" height=\"250\" \/><\/a><\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<h4 class=\"entry-title\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<a href=\"https:\/\/sixphere.com\/en\/blog\/digitalization-of-processes-key-phases-and-tasks\/\">Digitalization of processes: key phases and tasks<\/a>\n\t\t\t\t\t\t\t\t\t\t\t<\/h4>\n\t\t\t\t\n\t\t\t\t\t<p class=\"post-meta\"><span class=\"published\">22 May 2024<\/span><\/p><div class=\"post-content\"><div class=\"post-content-inner\"><p>The digitalization of production processes in a manufacturing industry is a complex task that requires meticulous planning and precise execution. Each phase of the project is crucial to ensure a successful and sustainable transformation. <\/p>\n<\/div><a href=\"https:\/\/sixphere.com\/en\/blog\/digitalization-of-processes-key-phases-and-tasks\/\" class=\"more-link\">read more<\/a><\/div>\t\t\t\n\t\t\t<\/article>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div> \n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t<\/div>\n\t\t\t\t\n\t\t\t\t\n\t\t\t<\/div>\n","protected":false},"excerpt":{"rendered":"<p>What is Domain-Driven Design and the principle of clean architectures? In this series of posts, we will explain what they consist of, why we like them, and how to apply them. To start, in this article, we will define basic concepts about layered architecture.  <\/p>\n","protected":false},"author":5,"featured_media":23887,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"content-type":"","_et_pb_use_builder":"on","_et_pb_old_content":"","_et_gb_content_width":"","footnotes":""},"categories":[185],"tags":[187,188,186],"class_list":["post-24605","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technology-innovation","tag-architecture","tag-ddd-en","tag-development"],"acf":{"cuerpo":"<p>When tackling <a href=\"https:\/\/sixphere.com\/software-tecnologia-innovacion\/\"><span style=\"text-decoration: underline;\">a new software project<\/span><\/a> involving multiple <em>stakeholders<\/em>, various components or third-party systems, or aiming to implement large business workflows essentially, a project with a high level of complexity the same question arises: What design strategy should be adopted? What business language should be used? What technological architecture patterns should be applied?  <\/p>\n<p>The answers to these questions should always be based on the analysis of aspects such as the required maintainability, the level of integration, scalability, or simply the implementation cost. However, one key aspect <strong>is often overlooked: the language<\/strong>. This is nothing more than the mechanism or point of connection that should allow the link between the business world to be digitized and the final digital product. In other words, the aspect that will determine success.  <\/p>\n<p>At what point does the concept of <strong>clean architectures and DDD<\/strong> (<em>Domain-Driven Design<\/em>) come into play? How do they help work on and optimize this key aspect? To begin, this article will address basic architectural concepts.  <\/p><h3>Clean Architectures and the Magic Hexagon<\/h3>\nThe hexagonal architecture is based on the following fundamental principles and objectives:\n<ul>\n\t<li>Explicitly and decisively separate the user, business, and server layers.<\/li>\n\t<li>Derive and push the dependencies from the user and server layers towards the business logic.<\/li>\n\t<li>Isolate and make each layer as independent as possible, eliminating improper couplings and giving each component a very specific responsibility.<\/li>\n<\/ul><img src=\"https:\/\/sixphere.com\/wp-content\/uploads\/2021\/09\/4c56a51a-964d-4546-b8e0-0e658535e87c.png\" alt=\"Hexagonal architecture diagram\" title_text=\"Diagrama de arquitectura hexagonal\" _builder_version=\"4.10.8\" _module_preset=\"default\" width=\"70%\" width_tablet=\"70%\" width_phone=\"100%\" width_last_edited=\"on|desktop\" module_alignment=\"center\" custom_margin=\"0px||0px||false|false\" global_colors_info=\"{}\"><p>From a practical point of view, this architectural principle is based on an idea as old as it is effective: <strong>divide and conquer<\/strong>. Separating or breaking the problem into independent pieces will not only make it easier to understand the overall problem, but it will also simplify the implementation of the solution and its subsequent maintenance. On the other hand, it paves the way for greater extensibility and scalability.  <\/p>\n<p>Would you like to dive deeper into this architectural principle? <span style=\"text-decoration: underline;\"><a href=\"https:\/\/blog.octo.com\/en\/hexagonal-architecture-three-principles-and-an-implementation-example\/\">This article will be very helpful<\/a><\/span>. Let\u2019s explore briefly and concisely each of the main components of hexagonal architecture. <\/p>\n<h3>Presentation layer<\/h3>\n<p>It is simply the <strong>final user interface<\/strong>. Broadly speaking, it is responsible for displaying information to the user, interpreting their commands, and triggering the relevant business actions by communicating with the other involved layers. <\/p>\n<p>It is important to highlight that, at times and quite frequently, the user or external actor is identified as a human being. Nothing could be further from the truth. <strong>The end user can be any other entity<\/strong>: a machine, <strong>an IoT device<\/strong>, another computer system, etc. This is a crucial point to consider when designing this layer.  <\/p>\n<h3>Application layer<\/h3>\n<p>It defines the tasks that the <em>software <\/em>must perform and directs the expressive domain objects to <strong>solve the problems<\/strong>. The tasks handled by this layer are significant for the business or necessary for interacting with the application layers of other systems. <\/p>\n<p>This layer remains \"thin.\" It does not contain business rules or knowledge; instead, it simply <strong>coordinates tasks and delegates the work<\/strong> to the domain object collaborations in the next layer. It does not have state that reflects the business situation, but it may have state that reflects the progress of a task for the user or the program.  <\/p>\n<h3>Domain layer<\/h3>\n<p>Also called the model layer. It is the component of the architecture <strong>responsible for representing business concepts<\/strong>, information about the business situation, and business rules. The state that reflects the company's situation through its digital system is controlled and used here, although the technical details of its storage are delegated to the infrastructure.  <\/p>\n<p>In short, it is the component that <strong>implements the company\u2019s workflows<\/strong> or production processes using a language very close to the business domain.<\/p>\n<h3>Infrastructure layer<\/h3>\n<p>This layer provides the <strong>generic technical capabilities<\/strong> that support the upper layers: message sending for the application, persistence for the domain, rendering <em>widgets <\/em>for the UI, etc. It is also responsible for the connection with external systems\/agents outside our domain. <\/p>\n<p>The infrastructure layer can also support the pattern of interactions between the four layers through an architectural framework and is also referred to as the<strong> anticorruption layer<\/strong> because it prevents the business layers from being \"contaminated\" with elements that are actually external to it.<\/p>\n<p>Would you like more information? <span style=\"text-decoration: underline;\"><a href=\"https:\/\/netflixtechblog.com\/ready-for-changes-with-hexagonal-architecture-b315ec967749\">Take a look at this post<\/a><\/span>.<\/p>\n<p><em><strong>In the next chapter of this series<\/strong>, a real-world problem will be presented along with the design of the solution, applying this and other principles.<\/em><\/p>","clasificacion":"Most read"},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Clean Architectures and DDD: A Practical Journey. Part 1 - Sixphere - Innovaci\u00f3n que conecta<\/title>\n<meta name=\"description\" content=\"What is Domain-Driven Design and the principle of clean architectures and DDD? We will explain what it is, why we like it, and how to apply it.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/sixphere.com\/en\/blog\/clean-architectures-and-ddd-a-practical-journey-part-1\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Clean Architectures and DDD: A Practical Journey. Part 1 - Sixphere - Innovaci\u00f3n que conecta\" \/>\n<meta property=\"og:description\" content=\"What is Domain-Driven Design and the principle of clean architectures and DDD? We will explain what it is, why we like it, and how to apply it.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/sixphere.com\/en\/blog\/clean-architectures-and-ddd-a-practical-journey-part-1\/\" \/>\n<meta property=\"og:site_name\" content=\"Sixphere - Innovaci\u00f3n que conecta\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/6phere\/\" \/>\n<meta property=\"article:published_time\" content=\"2021-09-23T11:14:08+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-03-27T15:05:36+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/sixphere.com\/wp-content\/uploads\/2021\/09\/pexels-gdtography-911758-1.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1920\" \/>\n\t<meta property=\"og:image:height\" content=\"1281\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Fernando Jim\u00e9nez\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@6phere\" \/>\n<meta name=\"twitter:site\" content=\"@6phere\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fernando Jim\u00e9nez\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":[\"Article\",\"BlogPosting\"],\"@id\":\"https:\\\/\\\/sixphere.com\\\/en\\\/blog\\\/clean-architectures-and-ddd-a-practical-journey-part-1\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/sixphere.com\\\/en\\\/blog\\\/clean-architectures-and-ddd-a-practical-journey-part-1\\\/\"},\"author\":{\"name\":\"Fernando Jim\u00e9nez\",\"@id\":\"https:\\\/\\\/sixphere.com\\\/en\\\/#\\\/schema\\\/person\\\/928bf3051ad6fedf62cab46c4cc6415e\"},\"headline\":\"Clean Architectures and DDD: A Practical Journey. Part 1\",\"datePublished\":\"2021-09-23T11:14:08+00:00\",\"dateModified\":\"2025-03-27T15:05:36+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/sixphere.com\\\/en\\\/blog\\\/clean-architectures-and-ddd-a-practical-journey-part-1\\\/\"},\"wordCount\":1693,\"publisher\":{\"@id\":\"https:\\\/\\\/sixphere.com\\\/en\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/sixphere.com\\\/en\\\/blog\\\/clean-architectures-and-ddd-a-practical-journey-part-1\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/sixphere.com\\\/wp-content\\\/uploads\\\/2021\\\/09\\\/pexels-gdtography-911758-1.jpg\",\"keywords\":[\"Architecture\",\"DDD\",\"Development\"],\"articleSection\":[\"Technology &amp; Innovation\"],\"inLanguage\":\"en-US\"},{\"@type\":[\"WebPage\",\"ItemPage\"],\"@id\":\"https:\\\/\\\/sixphere.com\\\/en\\\/blog\\\/clean-architectures-and-ddd-a-practical-journey-part-1\\\/\",\"url\":\"https:\\\/\\\/sixphere.com\\\/en\\\/blog\\\/clean-architectures-and-ddd-a-practical-journey-part-1\\\/\",\"name\":\"Clean Architectures and DDD: A Practical Journey. Part 1 - Sixphere - Innovaci\u00f3n que conecta\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/sixphere.com\\\/en\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/sixphere.com\\\/en\\\/blog\\\/clean-architectures-and-ddd-a-practical-journey-part-1\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/sixphere.com\\\/en\\\/blog\\\/clean-architectures-and-ddd-a-practical-journey-part-1\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/sixphere.com\\\/wp-content\\\/uploads\\\/2021\\\/09\\\/pexels-gdtography-911758-1.jpg\",\"datePublished\":\"2021-09-23T11:14:08+00:00\",\"dateModified\":\"2025-03-27T15:05:36+00:00\",\"description\":\"What is Domain-Driven Design and the principle of clean architectures and DDD? We will explain what it is, why we like it, and how to apply it.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/sixphere.com\\\/en\\\/blog\\\/clean-architectures-and-ddd-a-practical-journey-part-1\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/sixphere.com\\\/en\\\/blog\\\/clean-architectures-and-ddd-a-practical-journey-part-1\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/sixphere.com\\\/en\\\/blog\\\/clean-architectures-and-ddd-a-practical-journey-part-1\\\/#primaryimage\",\"url\":\"https:\\\/\\\/sixphere.com\\\/wp-content\\\/uploads\\\/2021\\\/09\\\/pexels-gdtography-911758-1.jpg\",\"contentUrl\":\"https:\\\/\\\/sixphere.com\\\/wp-content\\\/uploads\\\/2021\\\/09\\\/pexels-gdtography-911758-1.jpg\",\"width\":1920,\"height\":1281,\"caption\":\"Arquitecturas limpias y DDD\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/sixphere.com\\\/en\\\/blog\\\/clean-architectures-and-ddd-a-practical-journey-part-1\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\\\/\\\/sixphere.com\\\/en\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Clean Architectures and DDD: A Practical Journey. Part 1\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/sixphere.com\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/sixphere.com\\\/en\\\/\",\"name\":\"Sixphere Technologies\",\"description\":\"Construimos soluciones digitales y sistemas data-driven asistidos por IA para hacer que las cosas pasen.\",\"publisher\":{\"@id\":\"https:\\\/\\\/sixphere.com\\\/en\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/sixphere.com\\\/en\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/sixphere.com\\\/en\\\/#organization\",\"name\":\"Sixphere Technologies\",\"url\":\"https:\\\/\\\/sixphere.com\\\/en\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/sixphere.com\\\/en\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/sixphere.com\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/sixphere-isopo-main.jpg\",\"contentUrl\":\"https:\\\/\\\/sixphere.com\\\/wp-content\\\/uploads\\\/2023\\\/12\\\/sixphere-isopo-main.jpg\",\"width\":750,\"height\":600,\"caption\":\"Sixphere Technologies\"},\"image\":{\"@id\":\"https:\\\/\\\/sixphere.com\\\/en\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/6phere\\\/\",\"https:\\\/\\\/x.com\\\/6phere\",\"https:\\\/\\\/es.linkedin.com\\\/company\\\/sixphere\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/sixphere.com\\\/en\\\/#\\\/schema\\\/person\\\/928bf3051ad6fedf62cab46c4cc6415e\",\"name\":\"Fernando Jim\u00e9nez\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/b0c47a456afb851dd6c0e8678e7a7e1b8e25ed33c75d311192fe980d3e162751?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/b0c47a456afb851dd6c0e8678e7a7e1b8e25ed33c75d311192fe980d3e162751?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/b0c47a456afb851dd6c0e8678e7a7e1b8e25ed33c75d311192fe980d3e162751?s=96&d=mm&r=g\",\"caption\":\"Fernando Jim\u00e9nez\"},\"url\":\"https:\\\/\\\/sixphere.com\\\/en\\\/blog\\\/author\\\/fernando-jimenez\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Clean Architectures and DDD: A Practical Journey. Part 1 - Sixphere - Innovaci\u00f3n que conecta","description":"What is Domain-Driven Design and the principle of clean architectures and DDD? We will explain what it is, why we like it, and how to apply it.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/sixphere.com\/en\/blog\/clean-architectures-and-ddd-a-practical-journey-part-1\/","og_locale":"en_US","og_type":"article","og_title":"Clean Architectures and DDD: A Practical Journey. Part 1 - Sixphere - Innovaci\u00f3n que conecta","og_description":"What is Domain-Driven Design and the principle of clean architectures and DDD? We will explain what it is, why we like it, and how to apply it.","og_url":"https:\/\/sixphere.com\/en\/blog\/clean-architectures-and-ddd-a-practical-journey-part-1\/","og_site_name":"Sixphere - Innovaci\u00f3n que conecta","article_publisher":"https:\/\/www.facebook.com\/6phere\/","article_published_time":"2021-09-23T11:14:08+00:00","article_modified_time":"2025-03-27T15:05:36+00:00","og_image":[{"width":1920,"height":1281,"url":"https:\/\/sixphere.com\/wp-content\/uploads\/2021\/09\/pexels-gdtography-911758-1.jpg","type":"image\/jpeg"}],"author":"Fernando Jim\u00e9nez","twitter_card":"summary_large_image","twitter_creator":"@6phere","twitter_site":"@6phere","twitter_misc":{"Written by":"Fernando Jim\u00e9nez","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":["Article","BlogPosting"],"@id":"https:\/\/sixphere.com\/en\/blog\/clean-architectures-and-ddd-a-practical-journey-part-1\/#article","isPartOf":{"@id":"https:\/\/sixphere.com\/en\/blog\/clean-architectures-and-ddd-a-practical-journey-part-1\/"},"author":{"name":"Fernando Jim\u00e9nez","@id":"https:\/\/sixphere.com\/en\/#\/schema\/person\/928bf3051ad6fedf62cab46c4cc6415e"},"headline":"Clean Architectures and DDD: A Practical Journey. Part 1","datePublished":"2021-09-23T11:14:08+00:00","dateModified":"2025-03-27T15:05:36+00:00","mainEntityOfPage":{"@id":"https:\/\/sixphere.com\/en\/blog\/clean-architectures-and-ddd-a-practical-journey-part-1\/"},"wordCount":1693,"publisher":{"@id":"https:\/\/sixphere.com\/en\/#organization"},"image":{"@id":"https:\/\/sixphere.com\/en\/blog\/clean-architectures-and-ddd-a-practical-journey-part-1\/#primaryimage"},"thumbnailUrl":"https:\/\/sixphere.com\/wp-content\/uploads\/2021\/09\/pexels-gdtography-911758-1.jpg","keywords":["Architecture","DDD","Development"],"articleSection":["Technology &amp; Innovation"],"inLanguage":"en-US"},{"@type":["WebPage","ItemPage"],"@id":"https:\/\/sixphere.com\/en\/blog\/clean-architectures-and-ddd-a-practical-journey-part-1\/","url":"https:\/\/sixphere.com\/en\/blog\/clean-architectures-and-ddd-a-practical-journey-part-1\/","name":"Clean Architectures and DDD: A Practical Journey. Part 1 - Sixphere - Innovaci\u00f3n que conecta","isPartOf":{"@id":"https:\/\/sixphere.com\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/sixphere.com\/en\/blog\/clean-architectures-and-ddd-a-practical-journey-part-1\/#primaryimage"},"image":{"@id":"https:\/\/sixphere.com\/en\/blog\/clean-architectures-and-ddd-a-practical-journey-part-1\/#primaryimage"},"thumbnailUrl":"https:\/\/sixphere.com\/wp-content\/uploads\/2021\/09\/pexels-gdtography-911758-1.jpg","datePublished":"2021-09-23T11:14:08+00:00","dateModified":"2025-03-27T15:05:36+00:00","description":"What is Domain-Driven Design and the principle of clean architectures and DDD? We will explain what it is, why we like it, and how to apply it.","breadcrumb":{"@id":"https:\/\/sixphere.com\/en\/blog\/clean-architectures-and-ddd-a-practical-journey-part-1\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/sixphere.com\/en\/blog\/clean-architectures-and-ddd-a-practical-journey-part-1\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/sixphere.com\/en\/blog\/clean-architectures-and-ddd-a-practical-journey-part-1\/#primaryimage","url":"https:\/\/sixphere.com\/wp-content\/uploads\/2021\/09\/pexels-gdtography-911758-1.jpg","contentUrl":"https:\/\/sixphere.com\/wp-content\/uploads\/2021\/09\/pexels-gdtography-911758-1.jpg","width":1920,"height":1281,"caption":"Arquitecturas limpias y DDD"},{"@type":"BreadcrumbList","@id":"https:\/\/sixphere.com\/en\/blog\/clean-architectures-and-ddd-a-practical-journey-part-1\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/sixphere.com\/en\/"},{"@type":"ListItem","position":2,"name":"Clean Architectures and DDD: A Practical Journey. Part 1"}]},{"@type":"WebSite","@id":"https:\/\/sixphere.com\/en\/#website","url":"https:\/\/sixphere.com\/en\/","name":"Sixphere Technologies","description":"Construimos soluciones digitales y sistemas data-driven asistidos por IA para hacer que las cosas pasen.","publisher":{"@id":"https:\/\/sixphere.com\/en\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/sixphere.com\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/sixphere.com\/en\/#organization","name":"Sixphere Technologies","url":"https:\/\/sixphere.com\/en\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/sixphere.com\/en\/#\/schema\/logo\/image\/","url":"https:\/\/sixphere.com\/wp-content\/uploads\/2023\/12\/sixphere-isopo-main.jpg","contentUrl":"https:\/\/sixphere.com\/wp-content\/uploads\/2023\/12\/sixphere-isopo-main.jpg","width":750,"height":600,"caption":"Sixphere Technologies"},"image":{"@id":"https:\/\/sixphere.com\/en\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/6phere\/","https:\/\/x.com\/6phere","https:\/\/es.linkedin.com\/company\/sixphere"]},{"@type":"Person","@id":"https:\/\/sixphere.com\/en\/#\/schema\/person\/928bf3051ad6fedf62cab46c4cc6415e","name":"Fernando Jim\u00e9nez","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/b0c47a456afb851dd6c0e8678e7a7e1b8e25ed33c75d311192fe980d3e162751?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/b0c47a456afb851dd6c0e8678e7a7e1b8e25ed33c75d311192fe980d3e162751?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/b0c47a456afb851dd6c0e8678e7a7e1b8e25ed33c75d311192fe980d3e162751?s=96&d=mm&r=g","caption":"Fernando Jim\u00e9nez"},"url":"https:\/\/sixphere.com\/en\/blog\/author\/fernando-jimenez\/"}]}},"_links":{"self":[{"href":"https:\/\/sixphere.com\/en\/wp-json\/wp\/v2\/posts\/24605","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sixphere.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sixphere.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sixphere.com\/en\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/sixphere.com\/en\/wp-json\/wp\/v2\/comments?post=24605"}],"version-history":[{"count":0,"href":"https:\/\/sixphere.com\/en\/wp-json\/wp\/v2\/posts\/24605\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sixphere.com\/en\/wp-json\/wp\/v2\/media\/23887"}],"wp:attachment":[{"href":"https:\/\/sixphere.com\/en\/wp-json\/wp\/v2\/media?parent=24605"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sixphere.com\/en\/wp-json\/wp\/v2\/categories?post=24605"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sixphere.com\/en\/wp-json\/wp\/v2\/tags?post=24605"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}