Internet of Things
Scalability And Capacity For IoT
An architectural overview of these two non-functional challenges and business implications in solutions of Internet of Things

In my IoT (Internet of Things) solutions, I experienced that the scalability and capacity designs were common challenges for integrating interdependent components and their relationships in complex ecosystems.
As critical non-functional aspects of IoT solutions, the scalability and capacity risks hit the top of the viability list and required substantial architectural rigour in the earlier phase of the solution lifecycle.
What do scalability and capacity mean in architectural terms?
We can define scalability as the property of a system component to manage demands. Scalability solutions require adding resources to the systems due to increasing workloads.
We need to consider scalability with capacity because they are closely related.
Capacity can be defined as the maximum amount of resources that a system component can hold, contain, process, or produce.
By understanding these terms, we can envision that IoT solutions require a comprehensive scalability and capacity plans and designs.
Applications are critical aspect of IoT solutions. IoT applications integrate with and serve a myriad of devices in the ecosystem. Managing the distribution of devices across networks and the application landscape can be a complicated task in the operational state.
For IoT applications, there is a fundamental requirement for a dynamic increase or decrease in capacity, coupled with vertical and horizontal scalability and extendibility of the solutions. This requirement must be addressed in the macro design level.
Another critical requirement is that IoT applications must be tolerant of new services, workloads, and devices joining to the network at a fast speed. Addressing this challenge requires dynamic scalability and enormous extendibility per consumer demands.
To this end, IoT solution architects and designers must consider the scalability and capacity of devices, gateways, edge servers, cloud computing processes, storage, analytics process, and serving applications.
Solution architects at a high level, and solution designers at detailed level must plan scalability and capacity by considering all solution aspects, components, and relationships in the ecosystem.
You can review the IoT ecosystem components in this article.
Before the plans are completed, scalability and capacity requirements must be documented in the non-functional requirements matrix and matched to the solution building blocks identified in the system context.
These requirements must be traceable in the final solution models such as component model, operational model, and deployment model.
Detailed designers are capable of tracing the non-functional requirements in detailed solution building blocks. With the help of solution architects, the solution designers can walk through all solution building blocks in these models and validate that they are scalable and have adequate capacity as defined in the requirements matrix.
A solution building block is the smallest unit of the solution from functionality perspectives. Each solution building block also relate to many non-functional requirements. In this article our focus is only scalability and capacity of these building blocks.
One may ask why we need such an architectural and design rigour for scalability and capacity in IoT solutions.
The short answer is business implications.
Non-scalable and incapacitated IoT solutions may cause service bottlenecks, customer dissatisfaction, create non-compliance for service level agreements, and ultimately,can cause the solutions to fail.
This means financial loss for the funding business organisations.
This is a critical business impact to consider.