In enterprise software deployment, the choice of architecture plays a crucial role in the success of a selection. Ambit works with a wide number of organisations, and we highlight two prominent approaches: composable stacks and monolithic tech. Another term for this is single vendor versus multi vendor.
By Tim Warren and Richard Pratley
Tim Warren is CEO of Ambit. A former software developer, he has led architecture, vendor selection and complex system design for a range of companies and as a consultant.
Richard is GM at Ambit. A former Electrical Engineer, he has led both Corporate and SME businesses to transform, streamline and scale through software, technology and innovation.
In enterprise software deployment, the choice of architecture plays a crucial role in the success of a selection. Ambit works with a wide number of organisations, and we highlight two prominent approaches: composable stacks and monolithic tech. Another term for this is single vendor versus multi-vendor.
Both have their strengths and weaknesses; understanding the differences between them is essential for making informed decisions. In this blog, we jump into the characteristics, benefits and challenges associated with each approach and hope this helps you navigate the architectural landscape more effectively.
Monolithic Tech Stacks: The Traditional Approach
Monolithic tech stacks have been the de facto standard for many years. In this approach, an entire application suite is provided by a single vendor. All components, modules and dependencies are tightly coupled and deployed as a single ‘platform’. This architectural style offers simplicity, as everything is bundled together, making it easy to develop, test and deploy.
Microsoft Teams is a monolithic comms tool, an alternative to this might be Slack + Google + Zoom.
Advantages of Monolithic Tech Stacks
Simplicity: Monolithic architectures are relatively straightforward to understand and develop, making them an excellent choice for small to medium-sized projects or teams with limited resources. This can be noteable at implementation time.
Performance: Since all components reside within the same vendor stack, communication between them is highly efficient, potentially resulting in faster performance.
Easier problem solving: When an issue arises, solving can be less complex in a monolithic system. The issue can often be traced easily by the vendor.
It just works: It's built as a whole, so compatibility tends to be very high.
Challenges of Monolithic Tech Stacks
Scalability: Scaling monolithic stacks can be challenging, as typically the entire system needs to be enhanced rather than just the specific components required. This can lead to inefficient resource utilisation as well as increased costs - read unwanted upgrade.
Flexibility: With a single vendor you may find you suffer with a lack of flexibility in meeting your needs. The monoblock is what it is, and you have to accept that. Also you are less likely to be able to enhance or modify with integrations or APIs.
Deployment Complexity: Due to the tight coupling of components, deploying updates or introducing new features typically requires redeploying the wider platform, causing downtime and potential disruptions for users.
Technology Lock-In: Monolithic tech stacks often rely on a single technology or framework, making it difficult to incorporate new tools or switch to alternative technologies without substantial reengineering.
Average functionality: Often the cost of high integration is getting ordinary functionality. Vanilla rather than best of breed.
High regret: This is a biggie. If the wrong monolith is deployed, or if it’s deployed wrong, the risk and costs are very substantial. You might have lock-in for years, costing time and money, not to mention the impact on opportunity cost and team morale.
Composable Stacks: Embracing Best of Breed and Modularity
In recent years composable stacks have gained traction as an alternative architectural approach. This model emphasises breaking down applications into smaller, decoupled services or microservices that communicate with each other through well-defined APIs. Each service can be developed, deployed and scaled independently, offering greater flexibility and modularity.
Advantages of Composable Stacks
Scalability and Performance: Composable stacks allow for granular scaling, enabling specific services to handle increased requirements while others remain untouched. This efficient approach can result in better performance and cost optimisation.
Agility and Flexibility: With composable stacks, individual products can be updated or replaced without impacting the entire system. This agility allows for faster iteration, easier integration of new technologies and better adaptation to changing business requirements.
Team Scalability: Composable stacks facilitate distributed development, as different teams can work independently on separate services without stepping on each other's toes. This promotes parallel development and accelerates time-to-market.
Best of breed: With a composable stack you can get the best tool, just what you need rather than a compromise. Fundamentally you have far higher control, and this delivers quality and cost benefits.
Low-regret: If you make a misstep with a single service (let’s admit, we all make mistakes) it is a low relative cost to correct this.
Challenges of Composable Stacks
Complexity: Composable stacks introduce distributed systems complexity, requiring thoughtful design and implementation of service interactions, communication protocols and error handling mechanisms. This can increase the overall development and operational overhead if not managed carefully.
Testing and integration: These can be more challenging in multi-vendor stacks, as issues may arise from the interactions between services that are unwanted.
Operational Overhead: Managing a distributed system with multiple services involves additional operational complexities, such as multi-vendor / partner management, integration and inter-service communication. Proper tooling and infrastructure must be in place to handle these aspects efficiently.
Choosing the Right Approach
Selecting between monolithic tech and a composable stack depends on various factors, including project size, team structure, scalability requirements and the need for rapid iteration.
Small companies may find monolithic stacks suitable for their needs, benefiting from simplicity and ease of deployment. On the other hand, larger organisations might opt for composable stacks to achieve scalability, agility, cost savings and technological adaptability.
With platform architecture and vendor selection, the choice between composable stacks and monolithic tech represents a crucial decision that can significantly impact a company.
While monolithic architectures offer simplicity and ease, composable stacks embrace agility and flexibility. By understanding the characteristics, benefits and challenges associated with each approach, you can make informed architectural decisions that align with your requirements and goals.