This post is written by Ariel Assaraf in his capacity as CEO at Coralogix — a stateful streaming analytics platform that produces real-time insights and long-term trend analysis with no reliance on storage or indexing.
Assaraf writes as follows…
Composability is not new to the IT industry, but it’s a ‘layered concept’ and has yet to be fully embraced at the business level.
From a technological standpoint, we know that modularity can save developers time. Instead of spending hours here and there creating basic building blocks, they can focus on the more innovative aspects of their work. As we know, APIs are good examples of composability already being implemented. But modular technology is just scratching the surface of what we can achieve with composability.
Bringing composability up to the business level promises to make us more agile and resilient in the face of constant market disruption.
A new way of thinking
In our business, we’re working to conceptualise how we can implement composability throughout the organisation. A truly composable business is like a fractal, it’s composable at every level.
Composable thinking is the first building block of a composable business. Our way of thinking influences everything we do, it guides us in deciding not only what to compose, but also when and how.
Building on a mindset of composability, we can begin to implement it across the organisation, or more specifically, in the business architecture and tech stacks.
Balancing autonomy & abstraction
Autonomy is one of the primary principles of composability and it’s something that we’re focusing on heavily in our progression as a company. How can we modularise the company and the product in such a way that every part can function more or less independently from the others?
Abstraction plays a big role in the autonomy of a single part. Each modular component, from your tech stack to the business architecture, is given a certain level of abstraction to allow for more agility. Of course, there’s a point of diminishing returns on abstraction. If we take it too far and break everything down to the ‘atomic’ level, everything slows down because it’s being done from the ground up. Each part has full autonomy, but getting the parts to work together as we need them to is a much bigger challenge. Instead, we need to strike a balance between autonomy and abstraction.
With the right level of abstraction, each component is semi-autonomous with its own roles and responsibilities.
They can operate independently from the others and can also be duplicated for various purposes. This mostly autonomous structure enables growth by promoting both agility and resilience.
Cohesion is key
Once everything is modularised, the key to maintaining cohesion in the overall structure of the organisation is to have a good interface between the components.
Clear communication will ensure that the many autonomous components are working towards the same overarching goal.
If we can do this right, we should be able to achieve advancements in scale of both size and complexity that are still hard to even fathom.
Assaraf opinions on programming throughout the Covid-19 (Coronavirus) pandemic can be found on Computer Weekly here — and his thoughts on how managed services will be shaped (and used) in the context of modern software application development environments can be found on Computer Weekly here.