{"id":12085,"date":"2020-11-12T09:00:15","date_gmt":"2020-11-12T08:00:15","guid":{"rendered":"https:\/\/www.codemotion.com\/magazine\/?p=12085"},"modified":"2022-01-05T20:06:12","modified_gmt":"2022-01-05T19:06:12","slug":"casavo-incremental-microservices","status":"publish","type":"post","link":"https:\/\/www.codemotion.com\/magazine\/microservices\/casavo-incremental-microservices\/","title":{"rendered":"Build Incremental Architecture Through Microservices with Modern Languages &#8211; Casavo\u2019s Case Study"},"content":{"rendered":"\t\t\t\t<div class=\"wp-block-uagb-table-of-contents uagb-toc__align-left uagb-toc__columns-1  uagb-block-3695de23      \"\n\t\t\t\t\tdata-scroll= \"1\"\n\t\t\t\t\tdata-offset= \"30\"\n\t\t\t\t\tstyle=\"\"\n\t\t\t\t>\n\t\t\t\t<div class=\"uagb-toc__wrap\">\n\t\t\t\t\t\t<div class=\"uagb-toc__title\">\n\t\t\t\t\t\t\tTable Of Contents\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"uagb-toc__list-wrap \">\n\t\t\t\t\t\t<ol class=\"uagb-toc__list\"><li class=\"uagb-toc__list\"><a href=\"#reasons-for-change-towards-microservices\" class=\"uagb-toc-link__trigger\">Reasons for change: towards microservices<\/a><li class=\"uagb-toc__list\"><a href=\"#elixir-and-ddd-the-double-divine-strength\" class=\"uagb-toc-link__trigger\">Elixir and DDD, the double divine strength<\/a><li class=\"uagb-toc__list\"><a href=\"#stress-and-success-of-microservices\" class=\"uagb-toc-link__trigger\">Stress and success of microservices<\/a><li class=\"uagb-toc__list\"><a href=\"#casavos-custom-microservices-eventstore-pond-carol-worms\" class=\"uagb-toc-link__trigger\">Casavo\u2019s custom microservices: EventStore, Pond, Carol, Worms<\/a><li class=\"uagb-toc__list\"><a href=\"#casavo-and-elixir-a-perfect-marriage\" class=\"uagb-toc-link__trigger\">Casavo and Elixir, a perfect marriage<\/a><li class=\"uagb-toc__list\"><a href=\"#casavos-technology-radar\" class=\"uagb-toc-link__trigger\">Casavo\u2019s Technology Radar<\/a><li class=\"uagb-toc__list\"><a href=\"#doing-business-with-company-values-and-life-principles\" class=\"uagb-toc-link__trigger\">Doing business with company values and life principles<\/a><li class=\"uagb-toc__list\"><a href=\"#constant-training-a-developers-career-grows-with-technical-knowledge\" class=\"uagb-toc-link__trigger\">Constant training: a developer\u2019s career grows with technical knowledge<\/a><li class=\"uagb-toc__list\"><a href=\"#quality-management-and-fast-delivery\" class=\"uagb-toc-link__trigger\">Quality management and fast delivery<\/a><li class=\"uagb-toc__list\"><a href=\"#casavos-career-ladder\" class=\"uagb-toc-link__trigger\">Casavo\u2019s Career Ladder<\/a><\/ol>\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\n\n\n<p id=\"h-casavo-began-as-a-real-estate-instant-buyer-and-has-already-leveraged-the-traction-gained-through-this-service-to-become-a-technological-leader-in-the-real-estate-sphere-building-a-tech-offer-for-all-actors-involved-in-a-real-estate-transaction-the-company-s-ambition-is-to-become-a-technological-reference-point-in-the-real-estate-world-offering-many-vertical-solutions-beyond-the-instant-buyer-function\"><strong>Casavo<\/strong> began as a real-estate instant buyer and has already leveraged the traction gained through this service to become a technological leader in the real estate sphere, building a tech-offer for all actors involved in a real estate transaction. The company\u2019s ambition is to become a technological reference point in the real estate world, offering many vertical solutions beyond the Instant Buyer function (especially around the microservices world).<\/p>\n\n\n\n<p>\u201cMoving house is one of life\u2019s most overwhelming events, often causing months of stress and uncertainty\u201d, Casavo\u2019s <a class=\"ek-link wpil_keyword_link\" title=\"CTO\" href=\"https:\/\/www.codemotion.com\/magazine\/dev-hub\/cto\/how-to-become-cto\/\" target=\"_blank\" rel=\"noopener noreferrer\">CTO<\/a> Francesco Dominidiato explains. \u201cWe started Casavo in late 2017 with a mission to simplify home buying and selling. Since then, we have executed nearly 1,000 transactions for homeowners who have bought and sold homes with Casavo\u201d.<\/p>\n\n\n\n<p>An Instant Buyer is an operator who uses large amounts of data and technological tools to drastically reduce the time required to sell a property. Instant Buyer directly submits purchase offers for a property, revolutionizing the traditional buy\/sell process by introducing a simpler, faster and often more convenient paradigm.<\/p>\n\n\n\n<p>\u201cCasavo offers the freedom to move whenever you want, on your own terms. If you\u2019re selling, it can help you to sell your property at a competitive price in just thirty days, eliminating the hassle of showings and the months of uncertainty.&nbsp;<\/p>\n\n\n\n<p>If you\u2019re buying, Casavo makes it incredibly easy to find and purchase the perfect home. Wherever you are in your home-ownership journey, a dedicated Casavo expert will guide you every step of the way\u201d.<\/p>\n\n\n\n<p>Casavo has a clear vision to simplify the real estate buying <span id=\"urn:enhancement-b7e27068\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/process_computing\">process<\/span>. Let\u2019s see how this is achieved with respect to the company\u2019s values and stakeholders, customers included.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-reasons-for-change-towards-microservices\">Reasons for change: towards microservices<\/h2>\n\n\n\n<p>Casavo\u2019s platform was essentially born in <strong><span id=\"urn:enhancement-14bc0bfe\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/php\">PHP<\/span><\/strong>, with an <span id=\"urn:enhancement-62375baf\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/computer_architecture\">architecture<\/span> fully based on this <span id=\"urn:enhancement-72babea5\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/programming_languages\">programming language<\/span>. This proved to be a good solution, and it\u2019s no secret that many companies develop their business in <span id=\"urn:enhancement-b5ad21\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/php\">PHP<\/span>.<\/p>\n\n\n\n<p>However, Casavo also wanted to \u201crefresh\u201d its core architecture. Moving towards a microservices architecture was a natural choice for these new advances, and the team decided to opt for different modern <span id=\"urn:enhancement-4a8cccb0\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/programming_languages\">programming languages<\/span>, among which is the focus of this article &#8211; <strong><span id=\"urn:enhancement-493a783f\" class=\"textannotation disambiguated wl-creative-work\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/elixir_programming_language\">Elixir<\/span><\/strong>.&nbsp;<\/p>\n\n\n\n<p>At the end of 2019, the company started redesigning its technological stack, with one major constraint &#8211; changes must be <strong>incremental<\/strong>. The information system can never be restarted from scratch in this business. We\u2019ll return to this particular aspect of the <span id=\"urn:enhancement-56dc0ccb\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/software_development_process\">development process<\/span> later.<\/p>\n\n\n\n<p>The differences between <span id=\"urn:enhancement-baeb11e\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/php\">PHP<\/span> and Elixir can\u2019t be detailed in just a few words, but some points can be outlined in brief; in <span id=\"urn:enhancement-9c15c5fa\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/php\">PHP<\/span>, every request generates a void <span id=\"urn:enhancement-f59093b1\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/process_computing\">process<\/span> to be managed through a simple request\/response model.&nbsp; Elixir, on the other hand, is based on its own runtime &#8211; this <span id=\"urn:enhancement-8318bd54\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/component-based_software_engineering\">software component<\/span> and some services stay active forever. This approach pushes performances to the top and offers a memory of past executions.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-elixir-and-ddd-the-double-divine-strength\">Elixir and DDD, the double divine strength<\/h2>\n\n\n\n<p>There is a need for a more modern and agile approach to <span id=\"urn:enhancement-81f0f362\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/software_development\">software development<\/span>, in order to speed up progress towards a given goal.&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-why-elixir\">Why Elixir?<\/h3>\n\n\n\n<p><span id=\"urn:enhancement-7f26efac\" class=\"textannotation disambiguated wl-creative-work\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/elixir_programming_language\">Elixir<\/span> offers an honest and manageable technological ramp. Its adoption is not a free <span id=\"urn:enhancement-ed8b3bb0\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/process_computing\">process<\/span>, but it can be managed step by step, a little at a time.<\/p>\n\n\n\n<p>For those who are not familiar with this language, it all started with <strong><span id=\"urn:enhancement-7eee075\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/erlang_programming_language\">Erlang<\/span><\/strong>, a language developed by <span id=\"urn:enhancement-ac0dbb72\" class=\"textannotation disambiguated wl-organization\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/ericsson\">Ericsson<\/span>\u2019s engineers back in the mid-80s to manage highly concurrent telecommunication systems with extremely high reliability.&nbsp;<\/p>\n\n\n\n<p><span id=\"urn:enhancement-81c72082\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/erlang_programming_language\">Erlang<\/span> achieved concurrency without hassle. <span id=\"urn:enhancement-b63d7b72\" class=\"textannotation disambiguated wl-creative-work\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/elixir_programming_language\">Elixir<\/span> was born from <span id=\"urn:enhancement-708b9447\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/erlang_programming_language\">Erlang<\/span> in 2012, adding a more familiar <span id=\"urn:enhancement-3ed8380e\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/development_environment_software_development_process\">development environment<\/span> to <span id=\"urn:enhancement-3b25677a\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/erlang_programming_language\">Erlang<\/span>, among many other things.<\/p>\n\n\n\n<p>If used for writing sequential <span id=\"urn:enhancement-50498dfc\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/source_code\">code<\/span> in a single <span id=\"urn:enhancement-e734f293\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/process_computing\">process<\/span>, the language itself is simple and the generated code is easily readable. This makes it perfect for those who are taking their first steps in learning how to use it.<\/p>\n\n\n\n<p>Multiple <span id=\"urn:enhancement-ad3a686e\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/process_computing\">processes<\/span> can be coordinated with <span id=\"urn:enhancement-731122a8\" class=\"textannotation disambiguated wl-creative-work\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/elixir_programming_language\">Elixir<\/span>, but this is a more complex task, to be mastered further down the track.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>\u201c<strong>Elixir is flexible<\/strong>: a project, even an elaborate one, is rarely difficult to achieve easily. Honestly, it takes time to fully master Elixir, but each step to the top is nonetheless productive.\u201d<\/p><cite>Francesco Dominidiato, CTO at Casavo<\/cite><\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-stress-and-success-of-microservices\">Stress and success of microservices<\/h2>\n\n\n\n<p>&#8220;<span id=\"urn:enhancement-559ea096\" class=\"textannotation disambiguated wl-creative-work\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/elixir_programming_language\">Elixir<\/span> has been accepted by Casavo\u2019s <span id=\"urn:enhancement-1aef07ea\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/software_developer\">developers<\/span> with great enthusiasm and <strong>productivity<\/strong>, said Dominidiato. \u201cIn just a few months, four services have been deployed, with a fifth service at the end of the pipeline as we speak\u201d (July 2020).&nbsp;<\/p>\n\n\n\n<p>All the services developed in this time, once deployed, worked immediately. To our utmost amazement, moreover, they did not require further adaptations in the subsequent months.\u201d<\/p>\n\n\n\n<p>This success was underlined by the particular stress conditions to which the <span id=\"urn:enhancement-a017eaef\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/system\">system<\/span> was subjected. One event in particular suddenly increased website visits and therefore requests for new <span id=\"urn:enhancement-c356d064\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/microservices\">microservices<\/span>: an advertising campaign on a satellite television channel.<\/p>\n\n\n\n<p>As soon as these services were deployed, the company purchased advertising space on the Sky TV chain. That promotion dramatically increased the number of contacts with the site, putting stress on both old and new services, which were fully capable of scaling up without any problems.<\/p>\n\n\n\n<p>&#8220;But is it still up?&#8221; was the frequent, astonished question of all the <span id=\"urn:enhancement-1bec4153\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/software_developer\">developers<\/span> involved in the creation of each service.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-casavo-s-custom-microservices-eventstore-pond-carol-worms\">Casavo\u2019s custom microservices: EventStore, Pond, Carol, Worms<\/h2>\n\n\n\n<p>Let&#8217;s now look at the main characteristics of each of the developed services. Each <span id=\"urn:enhancement-a2a04d4e\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/microservices\">microservice<\/span>, in particular:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>has its own responsibilities;<\/li><li>has its own internal databases which are not published externally;<\/li><li>exposes an API;<\/li><li>uses events to communicate important facts to the outside world.<\/li><\/ul>\n\n\n\n<p>All events, collected in the <strong>EventStore<\/strong>, are available via <span id=\"urn:enhancement-821f2f9c\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/application_programming_interface\">API<\/span> to each <span id=\"urn:enhancement-c3ede93\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/user_computing\">user<\/span> interface (reading clients), which can be written in any language.<\/p>\n\n\n\n<p>As previously stated, Casavo deals with real estate. Each property must be associated with many pieces of information, each one of a very different type as required by the kind of services offered by the agency. Let\u2019s imagine what has to be done when selling an apartment:<\/p>\n\n\n\n<p>The <span id=\"urn:enhancement-c748d498\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/system\">system<\/span> not only has to cope with the description of the apartment, but &#8211; to offer a simple example &#8211; also the property\u2019s availability for viewing, in order to keep the visiting schedule up to date for possible buyers. The amount of information needed is very large and each service wants to see and edit only the small slice that it is directly concerned with.<\/p>\n\n\n\n<p>As a result, previously each service that had to enter valuable information did so independently and without any coordination. The number of examples is very large. <span id=\"urn:enhancement-b74b29a5\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/marketing\">Marketers<\/span> want to see a return on their advertising investment and be helped to make related choices.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-pond-microservice\">Pond Microservice<\/h3>\n\n\n\n<p>Casavo has created a unique <span id=\"urn:enhancement-97828957\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/software_repository\">repository<\/span>, a really comprehensive land registry, which has the capacity to gather together the information from each individual sector of activity. Internally they call this microservice, and their other main services <strong>Pond<\/strong>.&nbsp;<\/p>\n\n\n\n<p>Casavo&#8217;s listing engine, a part of the existing architecture, is itself now a Pond customer.<\/p>\n\n\n\n<p>However, no single <span id=\"urn:enhancement-fd0f1a0d\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/system\">system<\/span> can manage all these views at the same time. Time offers a fundamental point of view, but is difficult to manage on a classic <span id=\"urn:enhancement-8d171cbc\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/database\">database<\/span>. Casavo is developing an event architecture that relies on transactional workflow. In particular, Dominidiato underlines: \u201cOur event store will be centralized, agnostically decoupled with respect to the service that will issue the event and with a ledger &#8211; an historical archive whose elements can be sent by topic\u201d.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-carol-microservice\">Carol Microservice<\/h3>\n\n\n\n<p>Data publication is entrusted to <strong>Carol<\/strong>, a new microservice written in Elixir.<\/p>\n\n\n\n<p>At first glance, Pond and Store may seem to implement no more than a traditional access provision for a database. However, the logic behind them is much better, and the APIs they exhibit are very different from &#8211; and far more functional &#8211; than in any traditional approach.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-worms-microservice\">Worms Microservice<\/h3>\n\n\n\n<p>Worms stands for \u2018WORkflow Management System\u2019, and it represents Casavo\u2019s core ambition for the next year.<\/p>\n\n\n\n<p>The scope of this microservice will be huge, describing the overall transactional flow from lead acquisition to property resale. It will also facilitate direct and seamless communication between all stakeholders involved, both internal and external. In terms of architectural patterns, Worms follows the CQRS\/ES paradigm, as it perfectly fits the specificities of the product and really adapts to the characteristics of transactional workflow.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-casavo-and-elixir-a-perfect-marriage\">Casavo and Elixir, a perfect marriage<\/h2>\n\n\n\n<p>The choice of the Elixir language was one of the reasons behind the success of the new technology stack adopted by Casavo. Gabriele Lana, a Software Craftsman who had previous experience with Elixir, helped us during the startup phases of the adoption and implementation.<\/p>\n\n\n\n<p>The adoption of the Elixir technology has offered great advantages. In particular, it reduced the number of bugs by a factor of more than ten. \u201cWhere we normally find about one hundred mistakes, here we only found two or three that were easily identifiable and then easy to amend\u201d, explains Lana.<\/p>\n\n\n\n<p>Furthermore, Casavo has become an even more sought-after workplace for software developers.<\/p>\n\n\n\n<p>Such a positive result brings with it a deeper search for the causes of the situation than is often found in similar scenarios.<\/p>\n\n\n\n<p>To summarize the three main reasons for their success in a few words, Lana suggests that:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Elixir is cool;<\/li><li>we were good at introducing it;<\/li><li>our PHP programmers were good at figuring it out.<\/li><\/ul>\n\n\n\n<p>The result may therefore be repeatable in other contexts, but only with attention paid to the boundary conditions.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-casavo-s-technology-radar\">Casavo\u2019s Technology Radar<\/h2>\n\n\n\n<p>The company has taken their commitment to technology seriously, analysing all technologies relevant to their business and making the best decision after a thorough evaluation. The switch to Elixir also followed this path.<\/p>\n\n\n\n<p>Much work has been done to formalize knowledge analysis. The result is <strong>Casavo\u2019s Technology Radar<\/strong>, a target-like synthesis of technologies\u2019 positions with a 4-way categorisation.&nbsp;<\/p>\n\n\n\n<p>Tools and languages, frameworks, platforms, and techniques are placed clockwise on the quadrant. Distance from the axes is determined by relevance (hold, access, trial, and adoption): the closer to the target, the more relevant the technology is to the company.<\/p>\n\n\n\n<p>The Casavo Technology Radar is a remarkable synthesis of the company\u2019s determination to take the necessary steps to become a major player and once there, to hold that position for a long, long time.<\/p>\n\n\n\n<p>Moreover, this approach to technology evaluation is part of an even bigger plan, including such facets as company ethics and values. Let\u2019s dive into this:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"660\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/image1-1-1024x660.png\" alt=\"casavo tech radar\" class=\"wp-image-12086\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/image1-1-1024x660.png 1024w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/image1-1-300x193.png 300w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/image1-1-768x495.png 768w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/image1-1-1536x990.png 1536w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/image1-1.png 1999w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-doing-business-with-company-values-and-life-principles\">Doing business with company values and life principles<\/h2>\n\n\n\n<p>People&#8217;s quality of life is the most important thing to pursue. Software will be increasingly present in everybody\u2019s future. People&#8217;s quality of life will increasingly be affected by the quality of the software they interact with.&nbsp;<\/p>\n\n\n\n<p>Its\u2019 safe to say that good software contributes to improving people&#8217;s quality of life just as bad software contributes to making it worse.<\/p>\n\n\n\n<p>\u201cThink of purchases, reservations, call centers, but also electromedical technologies and even car brakes\u201d, says Francesco Dominidiato, \u201call of these services are assigned to software, whose quality has an effect on the quality of our lives\u201d. The range of examples spans from simple things such as a home-banking system to more risky situations, and as far as our security, both logical and physical.<\/p>\n\n\n\n<p>\u201cFor us, the quality of life of individuals is the first priority. We put all possible effort into improving the software we write every day\u201d. An obligation to avoid developing bad software exists; that\u2019s why the caliber of the whole technical staff is a big consideration for Casavo.&nbsp;<\/p>\n\n\n\n<p>Casavo searches for excellence in tech people, pays attention to their interactions and health, and gives them the best possible environment to express their potential. Training is one of the keys to continuous improvement.<\/p>\n\n\n\n<p>The company\u2019s management is also dedicated to building a strong, agile company in order to give all employees psychological safety and a fearless approach to organisation.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-values\">Values<\/h3>\n\n\n\n<p>Dominidiato believes that corporate values and good principles are the real guides to getting the best results &#8211; not only in business but also in your life.<\/p>\n\n\n\n<p>Doing technology wrong has consequences that we know well; to write good software you need good programmers and good, well-coordinated processes. Bad developers, although they may be highly coordinated, will not write good software; poorly coordinated programming luminaries will never complete good software projects.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"690\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/image2-1024x690.png\" alt=\"Casavo tech strategy microservices\" class=\"wp-image-12087\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/image2-1024x690.png 1024w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/image2-300x202.png 300w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/image2-768x518.png 768w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/image2.png 1070w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n\n<p>Casavo\u2019s tech team values are clearly laid out in one important slide. A focused vision becomes a well-defined mission statement that sets down eleven specific values.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-vision\">Vision<\/h3>\n\n\n\n<p>Technology is the key to simplifying all processes &#8211; making it very accessible to everyone makes life easier. Casavo aims to turn the transactional process into a commodity.&nbsp;<\/p>\n\n\n\n<p>To make their vision real, they have embarked on a mission: maximize prediction accuracy and minimize human assistance with an eye to minimizing user-experience friction.<\/p>\n\n\n\n<p>The values on the tech team list are sometimes familiar and sometimes cleverly re-imagined. It\u2019s clear from Casavo\u2019s work that lead time is the main key to implementing their mission. They also experiment, but only if the result is compatible with the Clean Code approach.<\/p>\n\n\n\n<p>The most important word may be hidden in the final line: \u201cTogether\u201d. It\u2019s not a question of being typed with an uppercase T or not: all stakeholders are thoroughly evaluated in this time-organising project, where lead time is key; all developers are asked to be learners, according to the data-driven approach, and there is a strong user focus.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-constant-training-a-developer-s-career-grows-with-technical-knowledge\">Constant training: a developer\u2019s career grows with technical knowledge<\/h2>\n\n\n\n<p>&#8220;<strong>The next career step of a good programmer is to become an excellent programmer<\/strong>,&#8221; explains Casavo\u2019s CTO, \u201cand this extends to any kind of technical expertise as well\u201d.&nbsp;<\/p>\n\n\n\n<p>Software development is creative knowledge working: the more you know, the more you are worth. &#8220;Casavo invests heavily in internal training and promotes internal careers\u201d, Dominidiato continues &#8211; a viewpoint that to some extent goes against the current in the managerial world.<\/p>\n\n\n\n<p>&#8220;It is important for us that a good developer evolves vertically in his sector, certain also to acquire greater relevance in the company and a higher salary&#8221;. The evolution of the developer and all other tech people does not necessarily involve a managerial career, as often happens in the market.<\/p>\n\n\n\n<p>Casavo does however offer tech people the possibility of <a href=\"https:\/\/www.codemotion.com\/magazine\/dev-hub\/cto\/fastest-route-to-cto\/\" class=\"ek-link\">switching into a managerial career<\/a>, but this is considered a distinct career ladder, rather than the natural evolution of a technical career.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"600\" height=\"600\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/image3.jpg\" alt=\"career ladder microservices\" class=\"wp-image-12088\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/image3.jpg 600w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/image3-300x300.jpg 300w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/image3-150x150.jpg 150w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/figure><\/div>\n\n\n\n<p>&#8220;The truth is different: <strong>the quality of the software depends heavily on the quality of the developers<\/strong>&#8220;, Dominidiato says. No quantity of junior programmers can compensate for the loss of a senior&#8217;s skill, or GAFA (Google, Amazon, Facebook and Apple), as well as many other big organisations, would already have tried this.&nbsp;<\/p>\n\n\n\n<p>\u201cThe GAFA hiring process requires numerous steps over a total duration of several weeks or months, just to better evaluate the candidate\u2019s skills. If there was a possibility, even a small one, to replace the quality of individuals with superior management of processes and projects, therefore using only poor programmers, they would do it!&#8221;<\/p>\n\n\n\n<p>A better programmer increases the quality of the software written by his working group. But even in the software world, there are several levels of quality.<\/p>\n\n\n\n<p>Nonetheless, despite being many corporations&#8217; most precious resource, the talents of developers are all too often squandered. Collectively, companies lose upward of $300 billion a year paying down &#8220;technical debt&#8221; as developers pour time into maintaining legacy systems or dealing with the ramifications of bad software.<\/p>\n\n\n\n<p>Some tasks need more quality than others. It is not always necessary to solve a new problem, which requires the highest quality, or to better solve a problem that already has a solution. In many cases, a pre-existing software configurator and limited customization capability are sufficient.&nbsp;<\/p>\n\n\n\n<p>A typical example is the core business of an average web agency, scaling perfectly well with mid-level programmers capable of managing the entire life cycle of one or more CMS (content management systems).<\/p>\n\n\n\n<p>The bottom line here is that a good developer is not required to become a manager if they want a better career &#8211; at least, not at Casavo.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-quality-management-and-fast-delivery\">Quality management and fast delivery<\/h2>\n\n\n\n<p>Casavo\u2019s goal is to <strong>deliver quality quickly<\/strong>. The classic \u201cquick and dirty\u201d paradigm is a false idol that can be broken. Relationships between individuals are key here.<\/p>\n\n\n\n<p>The interest of each individual is well-being; emotional intelligence is the tool that allows you to achieve it. Eliminating toxic relationships greatly accelerates the speed of delivery of quality software, thus obtaining \u201cquick and clean\u201d results, combining the best of two worlds.<\/p>\n\n\n\n<p>Quality is not always correctly assessed within companies. As William Gaybrick, former CFO and now CPO of Stripe, a very successful payment platform, has said, <em>&#8220;Tech&#8217;s ultimate success: Software developers are now more valuable to companies than money&#8221;<\/em>.&nbsp;<\/p>\n\n\n\n<p>\u201cAt Casavo, we are very much in agreement with this statement and therefore we want to keep good developers in the company, indeed improve them and attract new talents\u201d, Dominidiato points out.<\/p>\n\n\n\n<p>\u201cThat&#8217;s why in order to have career growth, the ability our developers need is not the knack for managing more people, but the talent to develop quality software.\u201d The company has repeatedly demonstrated their commitment to this ideal. <em>Casavo was ranked fourth in the 2019 Italian list of the \u2018Best places to work\u2019<\/em>. A year later, <em>they ranked first in <\/em><a href=\"https:\/\/www.linkedin.com\/pulse\/linkedin-top-startups-2020-dieci-aziende-italiane-alla-michele-pierri\/\"><em>LinkedIn\u2019s 2020 Top Startups Italia<\/em><\/a>.&nbsp;<\/p>\n\n\n\n<p>The bottom line is that quick and clean is possible. It\u2019s up to you to choose this way &#8211; and be game enough to reach this goal!<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-casavo-s-career-ladder\">Casavo\u2019s Career Ladder<\/h2>\n\n\n\n<p>\u201cTo evaluate the quality of our programmers, we have developed a suitable methodology\u201d, Dominidiato explains. \u201cWe appreciate lean and agile approaches, and the concepts of XP&nbsp; &#8211; Extreme Programming.&nbsp;<\/p>\n\n\n\n<p>We also follow the advice of Clean Code according to the well-known vision of \u2018Uncle Bob\u2019, a.k.a. Robert C. Martin.<\/p>\n\n\n\n<p>We developed a <strong>competency matrix<\/strong>, also known as a career ladder, based on a 10&#215;7 matrix. Seven dimensions, ranging from tech specific skills to business &amp; community impact, span over 10 tiers.\u201d<\/p>\n\n\n\n<p>This methodology is open to each of our tech people. If someone believes they are more capable, they can fill in the forms and provide evidence (projects, events) to a commission, which evaluates the submission, and if their self-evaluation is accurate, provides for the adjustment of duties and wages.<\/p>\n\n\n\n<p>When we hire people, we always evaluate the value they can add, without considering the salary (low or high) that they had in their previous \/ current job.\u201d<\/p>\n\n\n\n<p>Another interesting aspect is the flexibility given to employees in terms of space and timing of work. Certainly today this is of topical relevance, given the <a href=\"https:\/\/www.codemotion.com\/magazine\/articles\/stories\/covid19-developers-remote-work\/\" class=\"ek-link\">consequences of the Coronavirus<\/a>: in the company, they are all <a href=\"https:\/\/www.codemotion.com\/magazine\/tag\/remote-working\/\" class=\"ek-link\">remote<\/a> until the end of 2020.&nbsp; Nonetheless, gathering opinions and preferences from all levels, with the purpose of maximising the positive takeaways from the lockdown in terms of productivity and work-life balance, while at the same time recognising the need to maintain collaborative physical connection with the rest of the company, Casavo has already set up a policy for the \u201cnew normal\u201d that will allow everybody to exercise the right of up to 18 days of smart working per month.<\/p>\n\n\n","protected":false},"excerpt":{"rendered":"<p>Casavo began as a real-estate instant buyer and has already leveraged the traction gained through this service to become a technological leader in the real estate sphere, building a tech-offer for all actors involved in a real estate transaction. The company\u2019s ambition is to become a technological reference point in the real estate world, offering&#8230; <a class=\"more-link\" href=\"https:\/\/www.codemotion.com\/magazine\/microservices\/casavo-incremental-microservices\/\">Read more<\/a><\/p>\n","protected":false},"author":8,"featured_media":12092,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_editorskit_title_hidden":false,"_editorskit_reading_time":12,"_editorskit_is_block_options_detached":false,"_editorskit_block_options_position":"{}","_uag_custom_page_level_css":"","_genesis_hide_title":false,"_genesis_hide_breadcrumbs":false,"_genesis_hide_singular_image":false,"_genesis_hide_footer_widgets":false,"_genesis_custom_body_class":"","_genesis_custom_post_class":"","_genesis_layout":"","footnotes":""},"categories":[3355],"tags":[],"collections":[],"class_list":{"0":"post-12085","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-microservices","8":"entry"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.9 (Yoast SEO v26.9) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Build Incremental Microservices Architectures with Casavo - Codemotion<\/title>\n<meta name=\"description\" content=\"PropTech company Casavo has committed to the highest technology standards to build incremental microservices architectures.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.codemotion.com\/magazine\/microservices\/casavo-incremental-microservices\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Build Incremental Architecture Through Microservices with Modern Languages - Casavo\u2019s Case Study\" \/>\n<meta property=\"og:description\" content=\"PropTech company Casavo has committed to the highest technology standards to build incremental microservices architectures.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.codemotion.com\/magazine\/microservices\/casavo-incremental-microservices\/\" \/>\n<meta property=\"og:site_name\" content=\"Codemotion Magazine\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Codemotion.Italy\/\" \/>\n<meta property=\"article:published_time\" content=\"2020-11-12T08:00:15+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-01-05T19:06:12+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/per-loov-_1Z4zsEXUSk-unsplash.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"675\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Leo Sorge\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@CodemotionIT\" \/>\n<meta name=\"twitter:site\" content=\"@CodemotionIT\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Leo Sorge\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"16 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/microservices\/casavo-incremental-microservices\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/microservices\/casavo-incremental-microservices\/\"},\"author\":{\"name\":\"Leo Sorge\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/99fe84861e17797989e16094aac727d5\"},\"headline\":\"Build Incremental Architecture Through Microservices with Modern Languages &#8211; Casavo\u2019s Case Study\",\"datePublished\":\"2020-11-12T08:00:15+00:00\",\"dateModified\":\"2022-01-05T19:06:12+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/microservices\/casavo-incremental-microservices\/\"},\"wordCount\":3295,\"publisher\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/microservices\/casavo-incremental-microservices\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/per-loov-_1Z4zsEXUSk-unsplash.jpg\",\"articleSection\":[\"Microservices\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/microservices\/casavo-incremental-microservices\/\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/microservices\/casavo-incremental-microservices\/\",\"name\":\"Build Incremental Microservices Architectures with Casavo - Codemotion\",\"isPartOf\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/microservices\/casavo-incremental-microservices\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/microservices\/casavo-incremental-microservices\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/per-loov-_1Z4zsEXUSk-unsplash.jpg\",\"datePublished\":\"2020-11-12T08:00:15+00:00\",\"dateModified\":\"2022-01-05T19:06:12+00:00\",\"description\":\"PropTech company Casavo has committed to the highest technology standards to build incremental microservices architectures.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/microservices\/casavo-incremental-microservices\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.codemotion.com\/magazine\/microservices\/casavo-incremental-microservices\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/microservices\/casavo-incremental-microservices\/#primaryimage\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/per-loov-_1Z4zsEXUSk-unsplash.jpg\",\"contentUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/per-loov-_1Z4zsEXUSk-unsplash.jpg\",\"width\":1200,\"height\":675},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/microservices\/casavo-incremental-microservices\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.codemotion.com\/magazine\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Backend\",\"item\":\"https:\/\/www.codemotion.com\/magazine\/backend\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Build Incremental Architecture Through Microservices with Modern Languages &#8211; Casavo\u2019s Case Study\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#website\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/\",\"name\":\"Codemotion Magazine\",\"description\":\"We code the future. Together\",\"publisher\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.codemotion.com\/magazine\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\",\"name\":\"Codemotion\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png\",\"contentUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png\",\"width\":225,\"height\":225,\"caption\":\"Codemotion\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/Codemotion.Italy\/\",\"https:\/\/x.com\/CodemotionIT\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/99fe84861e17797989e16094aac727d5\",\"name\":\"Leo Sorge\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/60ef89012822fdaeb014dc2b17dcc78c3a835e1dfe86ede053fa46a91926fd29?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/60ef89012822fdaeb014dc2b17dcc78c3a835e1dfe86ede053fa46a91926fd29?s=96&d=mm&r=g\",\"caption\":\"Leo Sorge\"},\"description\":\"I hold a degree in electronics. I talk and write about science and technology in both real and close-to-real worlds since 1976. I frankly believe that business plan and singularity are excellent starts for science-fiction stories.\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/author\/leo-sorge\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Build Incremental Microservices Architectures with Casavo - Codemotion","description":"PropTech company Casavo has committed to the highest technology standards to build incremental microservices architectures.","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:\/\/www.codemotion.com\/magazine\/microservices\/casavo-incremental-microservices\/","og_locale":"en_US","og_type":"article","og_title":"Build Incremental Architecture Through Microservices with Modern Languages - Casavo\u2019s Case Study","og_description":"PropTech company Casavo has committed to the highest technology standards to build incremental microservices architectures.","og_url":"https:\/\/www.codemotion.com\/magazine\/microservices\/casavo-incremental-microservices\/","og_site_name":"Codemotion Magazine","article_publisher":"https:\/\/www.facebook.com\/Codemotion.Italy\/","article_published_time":"2020-11-12T08:00:15+00:00","article_modified_time":"2022-01-05T19:06:12+00:00","og_image":[{"width":1200,"height":675,"url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/per-loov-_1Z4zsEXUSk-unsplash.jpg","type":"image\/jpeg"}],"author":"Leo Sorge","twitter_card":"summary_large_image","twitter_creator":"@CodemotionIT","twitter_site":"@CodemotionIT","twitter_misc":{"Written by":"Leo Sorge","Est. reading time":"16 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.codemotion.com\/magazine\/microservices\/casavo-incremental-microservices\/#article","isPartOf":{"@id":"https:\/\/www.codemotion.com\/magazine\/microservices\/casavo-incremental-microservices\/"},"author":{"name":"Leo Sorge","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/99fe84861e17797989e16094aac727d5"},"headline":"Build Incremental Architecture Through Microservices with Modern Languages &#8211; Casavo\u2019s Case Study","datePublished":"2020-11-12T08:00:15+00:00","dateModified":"2022-01-05T19:06:12+00:00","mainEntityOfPage":{"@id":"https:\/\/www.codemotion.com\/magazine\/microservices\/casavo-incremental-microservices\/"},"wordCount":3295,"publisher":{"@id":"https:\/\/www.codemotion.com\/magazine\/#organization"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/microservices\/casavo-incremental-microservices\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/per-loov-_1Z4zsEXUSk-unsplash.jpg","articleSection":["Microservices"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.codemotion.com\/magazine\/microservices\/casavo-incremental-microservices\/","url":"https:\/\/www.codemotion.com\/magazine\/microservices\/casavo-incremental-microservices\/","name":"Build Incremental Microservices Architectures with Casavo - Codemotion","isPartOf":{"@id":"https:\/\/www.codemotion.com\/magazine\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.codemotion.com\/magazine\/microservices\/casavo-incremental-microservices\/#primaryimage"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/microservices\/casavo-incremental-microservices\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/per-loov-_1Z4zsEXUSk-unsplash.jpg","datePublished":"2020-11-12T08:00:15+00:00","dateModified":"2022-01-05T19:06:12+00:00","description":"PropTech company Casavo has committed to the highest technology standards to build incremental microservices architectures.","breadcrumb":{"@id":"https:\/\/www.codemotion.com\/magazine\/microservices\/casavo-incremental-microservices\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.codemotion.com\/magazine\/microservices\/casavo-incremental-microservices\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/microservices\/casavo-incremental-microservices\/#primaryimage","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/per-loov-_1Z4zsEXUSk-unsplash.jpg","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/per-loov-_1Z4zsEXUSk-unsplash.jpg","width":1200,"height":675},{"@type":"BreadcrumbList","@id":"https:\/\/www.codemotion.com\/magazine\/microservices\/casavo-incremental-microservices\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.codemotion.com\/magazine\/"},{"@type":"ListItem","position":2,"name":"Backend","item":"https:\/\/www.codemotion.com\/magazine\/backend\/"},{"@type":"ListItem","position":3,"name":"Build Incremental Architecture Through Microservices with Modern Languages &#8211; Casavo\u2019s Case Study"}]},{"@type":"WebSite","@id":"https:\/\/www.codemotion.com\/magazine\/#website","url":"https:\/\/www.codemotion.com\/magazine\/","name":"Codemotion Magazine","description":"We code the future. Together","publisher":{"@id":"https:\/\/www.codemotion.com\/magazine\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.codemotion.com\/magazine\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.codemotion.com\/magazine\/#organization","name":"Codemotion","url":"https:\/\/www.codemotion.com\/magazine\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png","width":225,"height":225,"caption":"Codemotion"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Codemotion.Italy\/","https:\/\/x.com\/CodemotionIT"]},{"@type":"Person","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/99fe84861e17797989e16094aac727d5","name":"Leo Sorge","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/60ef89012822fdaeb014dc2b17dcc78c3a835e1dfe86ede053fa46a91926fd29?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/60ef89012822fdaeb014dc2b17dcc78c3a835e1dfe86ede053fa46a91926fd29?s=96&d=mm&r=g","caption":"Leo Sorge"},"description":"I hold a degree in electronics. I talk and write about science and technology in both real and close-to-real worlds since 1976. I frankly believe that business plan and singularity are excellent starts for science-fiction stories.","url":"https:\/\/www.codemotion.com\/magazine\/author\/leo-sorge\/"}]}},"featured_image_src":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/per-loov-_1Z4zsEXUSk-unsplash-600x400.jpg","featured_image_src_square":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/per-loov-_1Z4zsEXUSk-unsplash-600x600.jpg","author_info":{"display_name":"Leo Sorge","author_link":"https:\/\/www.codemotion.com\/magazine\/author\/leo-sorge\/"},"uagb_featured_image_src":{"full":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/per-loov-_1Z4zsEXUSk-unsplash.jpg",1200,675,false],"thumbnail":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/per-loov-_1Z4zsEXUSk-unsplash-150x150.jpg",150,150,true],"medium":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/per-loov-_1Z4zsEXUSk-unsplash-300x169.jpg",300,169,true],"medium_large":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/per-loov-_1Z4zsEXUSk-unsplash-768x432.jpg",768,432,true],"large":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/per-loov-_1Z4zsEXUSk-unsplash-1024x576.jpg",1024,576,true],"1536x1536":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/per-loov-_1Z4zsEXUSk-unsplash.jpg",1200,675,false],"2048x2048":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/per-loov-_1Z4zsEXUSk-unsplash.jpg",1200,675,false],"small-home-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/per-loov-_1Z4zsEXUSk-unsplash.jpg",100,56,false],"sidebar-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/per-loov-_1Z4zsEXUSk-unsplash-180x128.jpg",180,128,true],"genesis-singular-images":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/per-loov-_1Z4zsEXUSk-unsplash-896x504.jpg",896,504,true],"archive-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/per-loov-_1Z4zsEXUSk-unsplash-400x225.jpg",400,225,true],"gb-block-post-grid-landscape":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/per-loov-_1Z4zsEXUSk-unsplash-600x400.jpg",600,400,true],"gb-block-post-grid-square":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/per-loov-_1Z4zsEXUSk-unsplash-600x600.jpg",600,600,true]},"uagb_author_info":{"display_name":"Leo Sorge","author_link":"https:\/\/www.codemotion.com\/magazine\/author\/leo-sorge\/"},"uagb_comment_info":0,"uagb_excerpt":"Casavo began as a real-estate instant buyer and has already leveraged the traction gained through this service to become a technological leader in the real estate sphere, building a tech-offer for all actors involved in a real estate transaction. The company\u2019s ambition is to become a technological reference point in the real estate world, offering&#8230;&hellip;","lang":"en","_links":{"self":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/12085","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/comments?post=12085"}],"version-history":[{"count":11,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/12085\/revisions"}],"predecessor-version":[{"id":12147,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/12085\/revisions\/12147"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/media\/12092"}],"wp:attachment":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/media?parent=12085"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/categories?post=12085"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/tags?post=12085"},{"taxonomy":"collections","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/collections?post=12085"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}