Cell-based architectures increase the resilience of systems by reducing the blast radius of failures. They are a good option for systems where any downtime is considered unacceptable or can significantly impact end users. Cell-based architectures augment the scalability model of microservices by forcing fixed-size cells as deployment units and favoring a scale-out rather than a scale-up approach. They make clearer where various components (which could be microservices) fit in the context of a wider system as they are packaged and deployed as a cell rather than on the granular level of application service. Cell-based architectures help improve the security of distributed systems by applying an additional level of security around cells. This article is part of the Cell-Based Architectures: How to Build Scalable and Resilient Systems article series. In this series we present a journey of discovery and provide a comprehensive overview and in-depth analysis of many key aspects of cell-based architectures, as well as practical advice for applying this approach to existing and new architectures. The ability to accommodate growth (or scale) is one of the main challenges we face as software developers. Whether you work in a tiny start-up or a large enterprise company, the question of how the system should reliably handle the ever-increasing load inevitably arises when evaluating how to deliver a new product or feature. The challenges of building and operating modern distributed systems only increase with scale and complexity. Infrastructure resources, in the cloud or on-premises, can experience unexpected and difficult-to-troubleshoot failures that architecture components need to deal with to deliver the required availability. Several years ago, microservices and their associated architectures became popular as they helped address some of the scaling challenges that monolithic applications (monorepos) faced. As Susan Fowler mentioned in an interview with InfoQ several years ago, these applications might not support sufficient concurrency or partitioning and, therefore, would reach scalability limitations that lead to performance and stability problems. As these monolithic applications grew, they became more challenging to work on in local environments. Application deployments became increasingly complex, resulting in teams whose developer velocities would grind to a crawl. Microservices helped ease those problems by enabling teams to work on, deploy, and scale the services in isolation. However, as with any architectural decision, adopting a microservices architecture brings its own set of challenges. Microservices introduce complexities in deployment, testing, and monitoring. They often require extra effort in designing communication between services and ensuring data consistency. These challenges can be mitigated by carefully designing the boundaries between services, establishing clear contracts, and implementing robust testing and monitoring mechanisms. One approach to address these challenges is to adopt a cell-based architecture. Cell-based architectures take the microservices concept a step further by defining fixed-size cells as deployment units. These cells are self-contained units that communicate with each other over well-defined interfaces. By encapsulating groups of related services within a cell, a cell-based architecture helps in managing complexity, controlling dependencies, and maintaining clear boundaries between services. Cell-based architectures also offer benefits in terms of scalability, resiliency, and security. The fixed-size nature of cells simplifies deployment and scaling operations, making it easier to manage the system as it grows. By isolating failures within cells, a cell-based architecture reduces the impact of failures on the overall system, improving resilience. Cell-based architectures can also enhance security by enforcing stricter controls at the cell level and isolating sensitive services within secure boundaries. Overall, cell-based architectures provide a structured and scalable way to build distributed systems. They offer a balance between the flexibility of microservices and the control of monolithic architectures, making them a compelling choice for organizations looking to develop resilient and scalable systems. In conclusion, cell-based architectures offer a pragmatic approach to addressing the challenges of building and operating modern distributed systems. They provide a structured framework for designing and deploying services, promoting modular design, clear boundaries, and efficient communication. By defining fixed-size cells as deployment units and enforcing strict isolation between cells, cell-based architectures help in managing complexity, controlling dependencies, and improving the resiliency and security of distributed systems. Organizations that adopt cell-based architectures stand to benefit from improved scalability, resilience, and security, as well as increased developer productivity and operational efficiency. With the growing complexity of modern distributed systems, cell-based architectures offer a practical and effective solution for building and scaling resilient and secure systems in todays fast-paced and dynamic environments.