In software development, we often start architecture discussions with a simple question: Which technology should we use?
Should we go with microservices or a monolith? RabbitMQ or Azure Service Bus? Azure Container Registry or direct deployment to Azure App Service?
These are important questions, but I think we often ask them too early.
Before choosing a technology, we need to understand the problem we are trying to solve. Good architecture is not about using the latest tools or following industry trends. It is about understanding our requirements, comparing different options, and choosing the approach that makes the most sense for our situation.
Every Decision Comes with Trade-Offs
There is no technology that is perfect for every scenario. Every choice has its advantages and disadvantages.
Take microservices, for an instance. They allow teams to deploy and scale services independently, but they also introduce challenges around communication, monitoring, troubleshooting, and deployment.
A monolithic application, on the other hand, is often simpler to develop and maintain, especially when the team is small and the business requirements are still changing.
Does that mean a monolith is always better? Not at all. It depends on the business needs, team structure, and expected growth.
The same thinking applies when choosing databases, messaging systems, cloud services, and deployment strategies.
Example: Azure Container Registry vs. Direct Deployment
Let's consider a simple scenario. We have a .NET Web API that needs to run on Azure App Service.
We have two options.
Option 1: Direct deployment
We build the application and deploy it directly to Azure App Service through a CI/CD pipeline.
This approach is straightforward. There are fewer components to configure and maintain, and the team can focus on building and delivering the application.
Option 2: Container-based deployment
We package the application into a Docker image, push that image to Azure Container Registry (ACR), and configure App Service to run the container.
This approach gives us a consistent deployment artifact that can be promoted across development, testing, and production environments. It can also fit well with an organization that already uses containers across multiple platforms.
However, it introduces additional responsibilities, such as managing the container registry, configuring permissions, scanning images for vulnerabilities, and maintaining Docker configurations.
So, which option should we choose?
If we have a straightforward .NET application that runs entirely on App Service, direct deployment may be enough. Introducing ACR in this case could add extra work without providing much value.
But if the organization has standardized on containers and needs to deploy the same image across different environments or hosting platforms, using ACR may be the better choice.
The point is not that one option is better than the other. The point is to understand whether the additional complexity is worth the benefit.
Start With the Problem, Not the Technology
Before making an architectural decision, I find it useful to ask a few basic questions:
- What problem are we trying to solve?
- What are the performances, scalability, and availability requirements?
- What happens when a dependency fails?
- Can our team support and maintain the proposed solution?
- What are the security implications and ongoing costs?
- Will this decision make future changes easier or introduce unnecessary dependencies?
These questions help us move away from personal preferences and technology trends toward decisions based on actual requirements.
My Personal Approach: Using a Simple Architecture Decision Matrix
Asking the right questions is a good starting point, but how do we compare different options and decide which one makes the most sense?
One approach I find useful is to create a simple architecture decision matrix. It helps compare alternatives based on the factors that matter most to the project, rather than relying only on personal preferences or familiarity with a technology.

Siddhartha SharmaPosted Oct 13, 2026, 2:43 AM
Good Read!! Simplicity is the best policy..👏