Large businesses and enterprises invest heavily in the software and infrastructure on which they depend. From back-office services to web application and hosting stacks, they have some different constraints and requirements to many smaller businesses. Entire industries have grown to address these needs resulting in some very complex and expensive products dominating the space, often viewed as the industry standard or default choice.
As competing products expanded in an attempt to win out over their rivals based on the number of features under one roof, the complexity grew, and the agility they offered shrank. Bundling in more features and abilities to be available “out of the box” made it increasingly difficult for engineers and technical architects to find the thing they were searching for in that box. Or if they found it, it wasn’t quite what they needed.
Talk to any technical architect working at an established enterprise and they’ll likely have stories of friction and frustration. Large financial and time investments make the sunk cost fallacy a significant threat to progress and productivity. The need to provide more approachable comprehension, adoption, and iteration grew over time.
Modularization brings agility
The emergence of products and services with very specific capabilities has given enterprises (and also smaller companies) the ability to architect solutions to their requirements with surgical precision. We know that a chain is only as strong as its weakest link. With large monolithic platforms, we couldn’t replace a weak link. We could only purchase a new chain.
A modular approach however, allows each service to be selected for its merits, rather than because it is bundled in as part of a single film-wrapped product. And since each service is designed to be used in this way, they have clean and deliberately designed interfaces and surface areas, making them more suitable for including in a larger system and mixed an matched to suit.
Benefiting from software engineering principals
Good software engineering practices teach us about the benefits of tight cohesion and loose coupling. Modular architectural designs which allows us to compose our solution from well defined and well delineated pieces can create robust, scalable, but also agile solutions. Attributes which are highly desirable, yet not easily attainable in the enterprise software space.
We see this trend towards modular design more tangibly in user interfaces and front-end engineering where components and re-use can be visibly apparent. These can be a great analogy for the same principles of separation of concerns, interface definitions, and API contracts which are beneficial when present in the underlying services and platform.
Build, buy, or hire specialist expertise
Another reason for the rise in popularity of a composable or modular approach to platforms in the enterprise space is related to the specialism required. If building a bespoke platform, we need to retain the skills needed to evolve and maintain every aspect of that system. Some of the disciplines and areas of expertise involved can be very niche and specialised making them expensive and high risk. At an industry scale many of these service and specialisms can be commodotized, with domain experts working within the service providers and focussing on just their areas of expertise.
By using the services of specialist modular products, we gain access to the wisdom, the SLAs, the compliance, and the economies of scale that would be unthinkably expensive or difficult to resource otherwise.
Escaping vendor lock-in
For all of the benefits we get from each provider in a composable platform, we also gain another critical advantage: they are replaceable. Avoiding vendor lock-in is a significant advantage when it comes to the health of a long term system. With each component justifying its retention not through lock-in, but by its virtues and advantages over the competition. A far healthier situation than a mutli-year contract with a single point of monolithic failure.
To learn more about how composable architectures can be harnessed through Netlify, visit our Composable resources.