In today's tech-driven world, the Cloud-First approach has become the norm. If you haven't yet considered moving your existing systems to the cloud or integrating cloud services into your software architecture, you're missing out on opportunities to enhance agility, reduce costs, and gain a competitive edge.
I recently had the pleasure of being the keynote speaker at the Global Azure Bootcamp Montevideo , and this article is inspired by that presentation.
What is Cloud Computing?
Gartner defines cloud computing as: 'A style of computing where scalable and elastic IT-related capabilities are provided ‘as a service’ to external customers using Internet technologies'. The cloud has five key attributes:
Service-based: It abstracts consumer concerns from provider concerns through service interfaces.
Scalable and elastic: Services can scale on demand by adding or removing resources.
Shared: Services share a pool of resources for economies of scale.
Metered by use: Services are tracked using usage metrics, enabling various payment methods.
Internet technologies: Services are delivered through the use of Internet identifiers, formats, and protocols.
To make the most of these cloud attributes, you need a well-thought-out strategy for migration. Every company must decide how to leverage the cloud, focusing on three primary approaches:
SaaS (Software as a Service) solutions offer time and cost savings. They enable you to access software applications via the internet, cutting down on installation and maintenance efforts.
Extending Your Current Infrastructure with the Cloud: This approach involves integrating the cloud into your existing infrastructure, making your systems more agile and cost-effective.
Higher-Level Services: Leveraging higher-level cloud services provides out-of-the-box solutions for common scenarios that can be adapted to your specific business needs, enhancing innovation and cost-efficiency.
By working on these three areas is how we really can transform our business.
Why Microsoft Azure?
At Kaizen Softworks , we are firm believers that Microsoft Azure offers one of the most comprehensive cloud solutions. Gartner has recognized Microsoft as a Leader in three Magic Quadrants of the Cloud: Cloud Infrastructure as Service, Public Cloud Storage Services, and Enterprise Application Platform as a Service.
Microsoft's SaaS solutions, such as Office 365, Microsoft Dynamics, and Power BI, are deployed globally and used by millions of customers.
For the other two cloud approaches, Microsoft Azure comes into play. Azure is a comprehensive cloud platform offering both higher-level services and infrastructure.
Amazon Web Services (AWS) is a great IaaS, but they don’t have SaaS, Salesforce has SaaS, but no IaaS, and the examples keep coming. By using a Cloud that covers all the three areas is how we can truly find the value of being agile, save money and integrate smoothly to transform our business.
Azure has a distinct advantage with its 34 regions , doubling what Amazon Web Services provides, and more regions are continually being added.
Azure's Foundational Pillars
Azure is built on three foundational pillars:
1. Choice and Flexibility
Azure provides an array of tools, technologies, and frameworks to choose from. You can select the best tools, programming languages, and platforms for your specific needs.
Having every Server OS including Linux with 12 different distributions, almost every DB system, so many different programming languages and platforms allows us to choose the best tool for the job and use the open source or commercial version on a case by case.
Here’s some of the tools and frameworks we can choose from:
We also have something very particular and unique to the Azure cloud, this is the Azure Stack. With it we get the same experience and power of the public cloud but on-premises or on a server provider hosting service.
Same management portal, same APIs, same apps and same DevOps experience. For government and other companies with particular needs and restrictions this is a huge deal. No other Cloud provider has this type of service.
2. Enterprise Ready
Azure boasts a multitude of compliance certifications and standards, making it a preferred choice for 85% of Fortune 500 companies.
Security and Privacy are key to enterprise customers and Microsoft has vast experience running online services developing industry-leading security measures and privacy policies.
Azure focuses on productivity, allowing teams to work seamlessly with integrations between various tools, services, workloads, and infrastructure, creating an efficient DevOps lifecycle.
Using Visual Studio Team Services (VSTS) SaaS solution, we can code on a PC or Mac, using Visual Studio (and even Visual Studio for Mac — in preview), Eclipse or XCode; any IDE, any platform, any language, a SaaS solution used by more than 4 million developers worldwide.
We can have all the private repos we want using Git or TFS, without paying anything additional, or we can integrate with our repos from other platforms like GitHub. VSTS offers a full DevOps cycle with build service, deploy and unit testing; and you know what else? We can compile Java, Android, .NET and some more.
After we passed our Unit Tests we can do some Load Testing simulating thousands of users hitting our web app or backend before moving to a Production environment.
Once everything is tested and ok, we can establish and use our own release policies and deploy our apps and backends to the Azure Cloud. While in Production we can use Application Insights to study the performance of it and keep the cycle running.
Azure Success Stories
The numbers speak for themselves:
More than 120,000 new Azure customer subscriptions are added each month.
1.6 million SQL databases run in Azure.
Azure processes 2 trillion messages per week through Azure IoT.
Azure serves 600 million Azure Active Directory users from 5 million companies.
Over 4 million developers are registered with Visual Studio Team Services.
Over 40% of Azure's revenue comes from startups and ISVs.
Real-World Azure Applications
Now, that’s some serious numbers but I also want to share some cool stories I heard from Scott Guthrie. Azure has been a game-changer for various industries:
AccuWeather, probably the biggest weather company out there, uses Azure to process more than 10 billion data inputs per day and 7 trillion unique data entities where they apply Machine Learning to be able to predict weather, not to mention they are using API services to sell this info to third parties too.
BMW built the whole ConnectedDrive platform using Azure technologies like Azure IoT, Machine Learning services, Data Services and many more.
Rolls Royce, well known for its cars but also for making flight engines are providing their customers a better experience by informing them of engine failures, preventing fails, predicting them, applying analytics and optimizing engine use.
All this by using Azure services like the IoT Suite, Cortana Analytics and Power BI, this last one used to analyze fuel consumption and suggest better routes that optimize it.
Azure App Platform
Azure's App Platform offers Web Apps, Mobile Apps, Logic Apps and API Apps. You can develop your apps in any language like Python, NodeJS, PHP, Java and .NET.
Azure offers features like:
Auto Patching, which means we don’t have to care or worry about updating the Operating System they are running on.
Autoscaling, which allows us to configure some rules to indicate how the app has to react to heavy loads and how to scale down when the load has been reduced.
Easy integration with existing apps, and we can configure continues deployment from our favorite repository system. Nascar and Alaska Airlines are examples of integrations between on-premises applications and new solutions in the Azure cloud. We also have Jet using everything from F# to Azure, I had the pleasure to meet Rachel Reese from the team and I can firmly say they know what they are doing.
I would like to give a special mention in the App Platform to Azure Functions. Azure Functions is a serverless computing service that allows you to code functions and pay only per invocation. It supports multiple languages and can be triggered by various events.
With this we forget about Virtual Machines, Apps and all that stuff and we just code some functions and that’s it. Our code runs in the cloud and we just pay per invocation, which can be triggered on certain events in Azure or by external services.
We can code these functions using F#, JavaScript, C#, Python, Batch, Bash, PHP and PowerShell and even code them using a web based interface, so no need for IDE neither — crazy. The Azure Functions runtime is open source and we can basically get it up and running anywhere, including AWS.
My very good friend Rachel Appel is working in the Azure Functions team at Microsoft, be sure to follow her and stay tuned for her speaking appearances.
Microservices on Azure
When it comes to Microservices, Azure doesn’t leave us alone. We have three different approaches to choose from depending of our needs and situation. The most basic one is VM Scale Sets, then we can jump to Azure Container Service or lastly use Azure Service Fabric like many Azure customers chose including BMW, TalkTalk and many more.
The Azure Container Service has standard Docker tooling and API support, you can orchestrate everything thru Azure, and you can use it on Azure or Azure Stack.
Azure Service Fabric is a prescriptive microservice platform which also uses Docker but with more services like sanity state management and more. You have .NET and Java APIs on Windows Server and Linux and you can deploy it to Azure, Azure Stack, VMWare, OpenStack and AWS.
Data and Analytics
The data management options Azure has to offer is wide. We have some official Microsoft options like SQL Azure, DocumentDB and Azure Redis Cache, but then we also have some other interesting options like Postgres, DB2, Oracle, MySQL, Cassandra, MongoDB, CouchDB and RavenDB.
SQL Azure has more than 1.6 million databases running, it’s a first class citizen developed by Microsoft with high availability, durable and fault tolerant, and you can scale elastically all around the world. For your existing SQl Server databases, fear not my friend, it is compatible and we have a really cool tool to help us: SQL Database Migration Wizard.
DocumentDB is another first class citizen here, a fully managed NoSQL database system made by Microsoft that scales from GBs to 100s of TBs. High performance with support of millions of operations per second.
Another cool thing is that we can scale app data and throughput independently, a feature introduced based on client feedback. I’m also really happy to say that my friend and Microsoft MVP Matías Quaranta is joining the DocumentDB team in Redmond.
The Walking Dead No Man’s Land app that reached number 1 in the Apple App Store is an excellent example of DocumentDB use with 1 billion queries per day with responses of less than 10ms 99% of the time. A video is worth a million words:
We all know systems generate more and more data every day at a pace that only keeps incrementing, but this is really good news if we are clever enough to take advantage of that data, gain insights from it and take intelligent actions.
For this, we have a big suite of options to use depending of our needs to know what happened, why, what will happen and what we should do about it, this suite is called the Cortana Intelligence Suite and includes: Power BI, Machine Learning, SQL Data Warehouse, HDInsight, Data Lake Analytics, Data Lake Store, Stream Analytics, Data Factory, Data Catalog and Event Hubs.
Internet of Things (IoT)
IoT is not left behind in Azure with the Azure IoT Suite offering secure device connectivity and management, business workflow integration and pre-configured solutions to start quickly and customize later to our needs.
Some big names using this Suite but not limited to these are Ford in their newest vehicles and Thyssenkrupp. The market leader in elevator systems uses the Azure IoT Suite to analyze and predict failures so they can optimize the service experience offered to their clients.
Cloud Infrastructure on Azure
If we move into infrastructure services in the Cloud, we can use Virtual Machines, Blob Storage, Active Directory, Virtual Networks, Load Balancers, DNS, Gateways.
I mean… you are a fully covered here too, there’s so many services in the Azure Cloud that we can take advantage from to create all the infrastructure of our systems in one place and manage everything from the same portal.
There’s up to 64 TB of storage per VM with less than 1ms read latency. If we step up, Azure has the largest VMs in the Public Cloud of up to 32 CPU cores and the latest generation of Intel processors, 450 GB RAM and 6.5 TB of local SSD! Crazy!
Companies using Azure Cloud Infrastructure include Walmart, United Nations, Samsung, Toyota, 3M and the list is long.
Cybersecurity on Azure
Nowadays hearing about attacks to companies systems is no surprise and Security has being positioned as a top priority for CIOs. Azure Security Center allows you to have visibility and control to prevent, detect and respond to security threats of your Cloud services.
Again, all from the same management portal with integrations to known security solutions like Barracuda, Trend Micro and many more.
Conclusion
I hope I gave you an overview of why Microsoft Azure is a great opportunity to jump into the Cloud, in our experience at Kaizen Softworks it has been a great choice in every project we used it.
We have vast experience using the App Platform and is probably one of the easiest ways to start investigating and doing some tests of your systems with the Azure Cloud. In several of our projects we have used SQL Azure and is not in vain that 1.6M databases are in use in Azure, the experience is practically the same if you are used to work with SQL Server.
Some other great services we have been using for a long time are Azure Active Directory, Blob Storage and Service Bus among other, all of which together allows us to build robust architectures in the Cloud.
As we are big fans of Single Page Applications built using Angular and many other non-Microsoft tech we can also say that serving applications built using these technologies has been a breeze in the Azure Cloud. Choice and flexibilitychecked.
The DevOps experience while working with Microsoft is great from Source Code Repo options to build, deploy, test and analyze, I think that this well integrated lifecycle in the Cloud is what has let us rely so many aspects of the process in the platform and just take care of what’s really important: building the system. The productivity focus of Microsoft is clearly noticed.
As another remarkable point from our experience, we had the opportunity to workimplementing the HIPAA Compliance standard in the Azure Cloud and there are a lot of aspects of it already covered by Azure out of the box, so another great differentiator there. Enterprise Ready verified.
In today's tech-driven world, the Cloud-First approach has become the norm. If you haven't yet considered moving your existing systems to the cloud or integrating cloud services into your software architecture, you're missing out on opportunities to enhance agility, reduce costs, and gain a competitive edge.
I recently had the pleasure of being the keynote speaker at the Global Azure Bootcamp Montevideo , and this article is inspired by that presentation.
What is Cloud Computing?
Gartner defines cloud computing as: 'A style of computing where scalable and elastic IT-related capabilities are provided ‘as a service’ to external customers using Internet technologies'. The cloud has five key attributes:
Service-based: It abstracts consumer concerns from provider concerns through service interfaces.
Scalable and elastic: Services can scale on demand by adding or removing resources.
Shared: Services share a pool of resources for economies of scale.
Metered by use: Services are tracked using usage metrics, enabling various payment methods.
Internet technologies: Services are delivered through the use of Internet identifiers, formats, and protocols.
To make the most of these cloud attributes, you need a well-thought-out strategy for migration. Every company must decide how to leverage the cloud, focusing on three primary approaches:
SaaS (Software as a Service) solutions offer time and cost savings. They enable you to access software applications via the internet, cutting down on installation and maintenance efforts.
Extending Your Current Infrastructure with the Cloud: This approach involves integrating the cloud into your existing infrastructure, making your systems more agile and cost-effective.
Higher-Level Services: Leveraging higher-level cloud services provides out-of-the-box solutions for common scenarios that can be adapted to your specific business needs, enhancing innovation and cost-efficiency.
By working on these three areas is how we really can transform our business.
Why Microsoft Azure?
At Kaizen Softworks , we are firm believers that Microsoft Azure offers one of the most comprehensive cloud solutions. Gartner has recognized Microsoft as a Leader in three Magic Quadrants of the Cloud: Cloud Infrastructure as Service, Public Cloud Storage Services, and Enterprise Application Platform as a Service.
Microsoft's SaaS solutions, such as Office 365, Microsoft Dynamics, and Power BI, are deployed globally and used by millions of customers.
For the other two cloud approaches, Microsoft Azure comes into play. Azure is a comprehensive cloud platform offering both higher-level services and infrastructure.
Amazon Web Services (AWS) is a great IaaS, but they don’t have SaaS, Salesforce has SaaS, but no IaaS, and the examples keep coming. By using a Cloud that covers all the three areas is how we can truly find the value of being agile, save money and integrate smoothly to transform our business.
Azure has a distinct advantage with its 34 regions , doubling what Amazon Web Services provides, and more regions are continually being added.
Azure's Foundational Pillars
Azure is built on three foundational pillars:
1. Choice and Flexibility
Azure provides an array of tools, technologies, and frameworks to choose from. You can select the best tools, programming languages, and platforms for your specific needs.
Having every Server OS including Linux with 12 different distributions, almost every DB system, so many different programming languages and platforms allows us to choose the best tool for the job and use the open source or commercial version on a case by case.
Here’s some of the tools and frameworks we can choose from:
We also have something very particular and unique to the Azure cloud, this is the Azure Stack. With it we get the same experience and power of the public cloud but on-premises or on a server provider hosting service.
Same management portal, same APIs, same apps and same DevOps experience. For government and other companies with particular needs and restrictions this is a huge deal. No other Cloud provider has this type of service.
2. Enterprise Ready
Azure boasts a multitude of compliance certifications and standards, making it a preferred choice for 85% of Fortune 500 companies.
Security and Privacy are key to enterprise customers and Microsoft has vast experience running online services developing industry-leading security measures and privacy policies.
Azure focuses on productivity, allowing teams to work seamlessly with integrations between various tools, services, workloads, and infrastructure, creating an efficient DevOps lifecycle.
Using Visual Studio Team Services (VSTS) SaaS solution, we can code on a PC or Mac, using Visual Studio (and even Visual Studio for Mac — in preview), Eclipse or XCode; any IDE, any platform, any language, a SaaS solution used by more than 4 million developers worldwide.
We can have all the private repos we want using Git or TFS, without paying anything additional, or we can integrate with our repos from other platforms like GitHub. VSTS offers a full DevOps cycle with build service, deploy and unit testing; and you know what else? We can compile Java, Android, .NET and some more.
After we passed our Unit Tests we can do some Load Testing simulating thousands of users hitting our web app or backend before moving to a Production environment.
Once everything is tested and ok, we can establish and use our own release policies and deploy our apps and backends to the Azure Cloud. While in Production we can use Application Insights to study the performance of it and keep the cycle running.
Azure Success Stories
The numbers speak for themselves:
More than 120,000 new Azure customer subscriptions are added each month.
1.6 million SQL databases run in Azure.
Azure processes 2 trillion messages per week through Azure IoT.
Azure serves 600 million Azure Active Directory users from 5 million companies.
Over 4 million developers are registered with Visual Studio Team Services.
Over 40% of Azure's revenue comes from startups and ISVs.
Real-World Azure Applications
Now, that’s some serious numbers but I also want to share some cool stories I heard from Scott Guthrie. Azure has been a game-changer for various industries:
AccuWeather, probably the biggest weather company out there, uses Azure to process more than 10 billion data inputs per day and 7 trillion unique data entities where they apply Machine Learning to be able to predict weather, not to mention they are using API services to sell this info to third parties too.
BMW built the whole ConnectedDrive platform using Azure technologies like Azure IoT, Machine Learning services, Data Services and many more.
Rolls Royce, well known for its cars but also for making flight engines are providing their customers a better experience by informing them of engine failures, preventing fails, predicting them, applying analytics and optimizing engine use.
All this by using Azure services like the IoT Suite, Cortana Analytics and Power BI, this last one used to analyze fuel consumption and suggest better routes that optimize it.
Azure App Platform
Azure's App Platform offers Web Apps, Mobile Apps, Logic Apps and API Apps. You can develop your apps in any language like Python, NodeJS, PHP, Java and .NET.
Azure offers features like:
Auto Patching, which means we don’t have to care or worry about updating the Operating System they are running on.
Autoscaling, which allows us to configure some rules to indicate how the app has to react to heavy loads and how to scale down when the load has been reduced.
Easy integration with existing apps, and we can configure continues deployment from our favorite repository system. Nascar and Alaska Airlines are examples of integrations between on-premises applications and new solutions in the Azure cloud. We also have Jet using everything from F# to Azure, I had the pleasure to meet Rachel Reese from the team and I can firmly say they know what they are doing.
I would like to give a special mention in the App Platform to Azure Functions. Azure Functions is a serverless computing service that allows you to code functions and pay only per invocation. It supports multiple languages and can be triggered by various events.
With this we forget about Virtual Machines, Apps and all that stuff and we just code some functions and that’s it. Our code runs in the cloud and we just pay per invocation, which can be triggered on certain events in Azure or by external services.
We can code these functions using F#, JavaScript, C#, Python, Batch, Bash, PHP and PowerShell and even code them using a web based interface, so no need for IDE neither — crazy. The Azure Functions runtime is open source and we can basically get it up and running anywhere, including AWS.
My very good friend Rachel Appel is working in the Azure Functions team at Microsoft, be sure to follow her and stay tuned for her speaking appearances.
Microservices on Azure
When it comes to Microservices, Azure doesn’t leave us alone. We have three different approaches to choose from depending of our needs and situation. The most basic one is VM Scale Sets, then we can jump to Azure Container Service or lastly use Azure Service Fabric like many Azure customers chose including BMW, TalkTalk and many more.
The Azure Container Service has standard Docker tooling and API support, you can orchestrate everything thru Azure, and you can use it on Azure or Azure Stack.
Azure Service Fabric is a prescriptive microservice platform which also uses Docker but with more services like sanity state management and more. You have .NET and Java APIs on Windows Server and Linux and you can deploy it to Azure, Azure Stack, VMWare, OpenStack and AWS.
Data and Analytics
The data management options Azure has to offer is wide. We have some official Microsoft options like SQL Azure, DocumentDB and Azure Redis Cache, but then we also have some other interesting options like Postgres, DB2, Oracle, MySQL, Cassandra, MongoDB, CouchDB and RavenDB.
SQL Azure has more than 1.6 million databases running, it’s a first class citizen developed by Microsoft with high availability, durable and fault tolerant, and you can scale elastically all around the world. For your existing SQl Server databases, fear not my friend, it is compatible and we have a really cool tool to help us: SQL Database Migration Wizard.
DocumentDB is another first class citizen here, a fully managed NoSQL database system made by Microsoft that scales from GBs to 100s of TBs. High performance with support of millions of operations per second.
Another cool thing is that we can scale app data and throughput independently, a feature introduced based on client feedback. I’m also really happy to say that my friend and Microsoft MVP Matías Quaranta is joining the DocumentDB team in Redmond.
The Walking Dead No Man’s Land app that reached number 1 in the Apple App Store is an excellent example of DocumentDB use with 1 billion queries per day with responses of less than 10ms 99% of the time. A video is worth a million words:
We all know systems generate more and more data every day at a pace that only keeps incrementing, but this is really good news if we are clever enough to take advantage of that data, gain insights from it and take intelligent actions.
For this, we have a big suite of options to use depending of our needs to know what happened, why, what will happen and what we should do about it, this suite is called the Cortana Intelligence Suite and includes: Power BI, Machine Learning, SQL Data Warehouse, HDInsight, Data Lake Analytics, Data Lake Store, Stream Analytics, Data Factory, Data Catalog and Event Hubs.
Internet of Things (IoT)
IoT is not left behind in Azure with the Azure IoT Suite offering secure device connectivity and management, business workflow integration and pre-configured solutions to start quickly and customize later to our needs.
Some big names using this Suite but not limited to these are Ford in their newest vehicles and Thyssenkrupp. The market leader in elevator systems uses the Azure IoT Suite to analyze and predict failures so they can optimize the service experience offered to their clients.
Cloud Infrastructure on Azure
If we move into infrastructure services in the Cloud, we can use Virtual Machines, Blob Storage, Active Directory, Virtual Networks, Load Balancers, DNS, Gateways.
I mean… you are a fully covered here too, there’s so many services in the Azure Cloud that we can take advantage from to create all the infrastructure of our systems in one place and manage everything from the same portal.
There’s up to 64 TB of storage per VM with less than 1ms read latency. If we step up, Azure has the largest VMs in the Public Cloud of up to 32 CPU cores and the latest generation of Intel processors, 450 GB RAM and 6.5 TB of local SSD! Crazy!
Companies using Azure Cloud Infrastructure include Walmart, United Nations, Samsung, Toyota, 3M and the list is long.
Cybersecurity on Azure
Nowadays hearing about attacks to companies systems is no surprise and Security has being positioned as a top priority for CIOs. Azure Security Center allows you to have visibility and control to prevent, detect and respond to security threats of your Cloud services.
Again, all from the same management portal with integrations to known security solutions like Barracuda, Trend Micro and many more.
Conclusion
I hope I gave you an overview of why Microsoft Azure is a great opportunity to jump into the Cloud, in our experience at Kaizen Softworks it has been a great choice in every project we used it.
We have vast experience using the App Platform and is probably one of the easiest ways to start investigating and doing some tests of your systems with the Azure Cloud. In several of our projects we have used SQL Azure and is not in vain that 1.6M databases are in use in Azure, the experience is practically the same if you are used to work with SQL Server.
Some other great services we have been using for a long time are Azure Active Directory, Blob Storage and Service Bus among other, all of which together allows us to build robust architectures in the Cloud.
As we are big fans of Single Page Applications built using Angular and many other non-Microsoft tech we can also say that serving applications built using these technologies has been a breeze in the Azure Cloud. Choice and flexibilitychecked.
The DevOps experience while working with Microsoft is great from Source Code Repo options to build, deploy, test and analyze, I think that this well integrated lifecycle in the Cloud is what has let us rely so many aspects of the process in the platform and just take care of what’s really important: building the system. The productivity focus of Microsoft is clearly noticed.
As another remarkable point from our experience, we had the opportunity to workimplementing the HIPAA Compliance standard in the Azure Cloud and there are a lot of aspects of it already covered by Azure out of the box, so another great differentiator there. Enterprise Ready verified.
Applying changes across microservices is difficult because business logic is distributed across multiple services, each with its own data, contracts, and responsibilities.
In our experiment at Kaizen Softworks, we tested whether an AI system could safely apply coordinated changes across a microservices architecture using only minimal input.
Short answer: Yes, but only when the AI has enough architectural context.
Why are coordinated changes in microservices so hard?
In distributed systems, a single business change rarely affects just one service.
It often requires:
Updating multiple microservices
Modifying message contracts
Keeping DTOs (Data Transfer Objects) consistent
Respecting domain boundaries defined by Domain-Driven Design (DDD)
Key entities in this system:
Microservice: An independently deployable service responsible for a specific domain
Aggregate (DDD): A cluster of domain objects treated as a single unit
DTO (Data Transfer Object): A structured format used to transfer data between services
Message/Event: A communication mechanism between services
The complexity is not in the code, it’s in the relationships between components.
The experiment: Can AI reason across services with minimal input?
We designed a controlled experiment to test whether an AI model could apply system-wide changes with limited information.
Input given to the AI:
Message definitions (events between services)
DTOs (data contracts)
Tasks the AI had to perform:
Identify affected aggregates
Determine service ownership
Apply coordinated changes across services
Maintain consistency in messages and DTOs
In other words, the AI had to behave like a software architect, not just a code generator.
What was the biggest obstacle?
The biggest challenge was not technical, it was contextual.
Problem: unclear service naming
Instead of descriptive names like:
order-service
billing-service
Our services were named:
john
sally
roger
This removed any semantic clues about responsibility.
Result: The AI could not infer which service owned which domain logic.
The missing piece: aggregate ownership mapping
To solve this, we introduced a simple but powerful structure:
Aggregate → Service mapping
Order → john
Shipment → sally
Invoice → roger
This created a clear relationship between domain concepts and system components.
Once ownership was explicit, the architecture became understandable.
How we used AI to generate architectural context
Instead of building this mapping manually, we used AI to analyze the codebase and extract:
Where each aggregate was defined
Which microservice implemented it
The relationship between domain and infrastructure
The result was a machine-readable architecture map.
In practice, we used AI to generate the context that AI itself needed.
Results: Can AI safely apply distributed changes?
With the architecture map in place, the AI was able to:
Trace message flows across services
Identify affected aggregates
Locate the correct microservices
Apply coordinated updates
Maintain consistency between DTOs and messages
While not perfect, the system worked reliably as a proof of concept.
What is the real limitation of AI in microservices?
The main limitation of AI is not code generation, it’s architectural understanding.
Without knowing:
Which components exist
How they relate
Who owns what
AI cannot safely modify a distributed system.
AI performance depends more on context quality than model capability.
When can AI safely modify microservices?
AI works well when:
Aggregate ownership is clearly defined
Message contracts are explicit
Architecture is structured and consistent
AI struggles when:
Naming is ambiguous
Relationships are implicit
Context is incomplete
Simple rule: If the architecture is clear, AI can reason. If not, it guesses.
Final thoughts
This experiment revealed something important:
AI doesn’t fail because it can’t write code. It fails because it can’t see the system.
As teams move toward AI-assisted development, the focus will likely shift from:
Writing better code to Designing better systems for machines to understand
At Kaizen Softworks, we see this as a foundational shift.
Because when AI can understand architecture, it doesn’t just generate code, it helps evolve systems.
There's a myth that in flat organizations, everyone decides on everything.
That's not how it works. At least not at Kaizen.
When people hear "no managers," they often picture one of two extremes: either total chaos where nobody is accountable, or endless meetings where 80 people vote on which coffee to buy. The reality is neither.
Not everyone decides on everything. Not everyone votes. What we do have is a clear set of decision-making methods that we choose based on context.
It depends on who's affected and how deep the impact goes
Before choosing how to decide, we ask ourselves a few questions:
Who is affected? A decision that only impacts one team doesn't need the whole company involved. A decision that affects everyone's daily work does.
How deep is the impact? Changing the office furniture is wide but shallow. Changing the salary model is deep and lasting.
Is it reversible? If we can easily undo it, we can move fast and just inform. If it's hard to reverse, we slow down and include more people.
How urgent is it? And here we're careful to distinguish real urgency from anxiety, the pressure to decide quickly because someone already has "the answer" in mind.
These dimensions help us pick the right method. Not every decision deserves the same process.
Our decision-making toolkit
Over the years, we've landed on a few methods that we use depending on the situation:
1. Role-based decisions
Some decisions belong to a specific role. If someone owns a responsibility, say, office logistics or hiring for a team, they decide within that domain. No committee needed. The key is that roles are transparent: everyone knows who owns what, and the scope of each role's authority is clear.
2. Advice Process
When a decision doesn't clearly belong to one role, or when it crosses boundaries, we use the advice process. Here's how it works:
Someone takes the initiative. They identify the problem and own the process.
They gather input from people who are affected and people with expertise.
They seek advice, real conversations, not rubber-stamping.
They make the decision and communicate it, including what advice they incorporated and what they didn't (and why).
The decision-maker is not a committee. It's one person (or a small group) who takes responsibility. But they don't decide in isolation, they bring in the perspectives that matter.
We sometimes call this "Team Advice" when a working group forms around an issue that doesn't naturally fall into anyone's area, and "Area Advice" when a team opens up a topic that exceeds their own scope.
3. Consent (not consensus)
Consent is not "everyone agrees." Consent means "no one has a strong enough objection to block this." We do use a poll, but not to count votes — we use a 1-to-5 scale to measure the level of agreement and surface objections, not to let the majority rule.
We use it in two flavors:
High-participation consent: For decisions with deep, company-wide impact. This is our most expensive and slowest method, which is exactly why we reserve it for high-impact decisions that affect many people. The Board sets the boundaries, for example, when we moved offices, they defined the monthly budget. Then a working group produced proposals, collected feedback, evolved them, and the whole company expressed their position for the final decision. Silence is not approval; we explicitly ask people to weigh in, even if it's just "I have no objection."
Lightweight consent: For decisions that are broad but not deep. Participation is optional, anyone who's interested can jump in. We share the proposal, open a window for objections, and if nobody opposes, we move forward. This gives us speed without sacrificing transparency. If nobody engages, that's a signal too, maybe the proposal doesn't add enough value, or we're using the wrong channel.
4. Inform, don't fake-consult
Not everything needs participation. When a decision has already been made through a legitimate process, the right move is to inform, not to fake-consult. One of the fastest ways to kill self-management is to ask for feedback and then ignore it. If you're not going to change course based on input, don't ask for it, just be transparent about the decision and the reasons behind it.
What we explicitly avoid
Decision by Voting. In a company context, majority rule creates losers. And losers become detractors, often generating more resistance than an autocratic decision would have. Instead of voting, we prefer to evolve a proposal through feedback until it's "good enough for now," and then introduce a review point to adjust later. If voting happens at all, it's the cherry on top, not the main course.
The "surprise" approach. Working behind closed doors and then unveiling a finished decision is a recipe for frustration. Adults don't need surprises. Adults need to feel like they're part of the process. The complaints that follow a surprise aren't about the decision itself, they're about not being included.
Why we work this way
We didn't adopt these methods because they're trendy. We adopted them because they solve real problems:
Better decisions. When you include affected people, you get information you wouldn't have had otherwise. Ideas emerge that no single person would have come up with alone.
Less resistance. A person who feels heard is far less likely to resist a decision, even one they wouldn't have made themselves.
Faster execution. It sounds counterintuitive, but participative decisions often execute faster because people already understand and support them. The time you "save" by deciding alone, you spend later managing pushback.
Distributed authority. When people can make decisions within their domain without escalating everything to a founder, the organization scales. The bottleneck disappears.
Resilience. If a shared decision fails, the group adjusts together. If a top-down decision fails, the blame falls on one person and the chances of proactive correction drop.
The real principle behind all of this
Transparency is the foundation. Every method we use, from role-based decisions to high-participation consent, works because information flows openly. People know what's being decided, who's deciding it, and how they can participate.
Horizontal doesn't mean structureless. It means fewer hierarchical levels, clearer roles, and intentional decision-making processes that match the weight of each decision.
Not everyone decides on everything. But everyone knows how things get decided.