Ep 4: Cell-based Architecture 101 - Introduction
Let's learn Cell-based Architecture i.e. State-of-the-art in developing cloud applications in minutes.
It's been a while when I published the last episode since I had been off for this magazine. Now, I'd like to reboot this magazine by shifting the topic to system design. “Cell-based Architecture“ is one of the state-of-the-art in developing cloud applications but it’s still not popular except among big tech companies like Amazon yet. I learned the importance and reality of Cell-based Architecture when I was working for Amazon S3 and Amazon EKS, then I’ve just realized that people don’t know about Cell-based Architecture yet. Therefore, in this series of 5 posts, I’d like to explain Cell-based Architecture for everyone briefly to attract you to explore more about it and try it.
This series focuses on inspiring majority of the readers and making them interested in Cell-based Architecture. I won’t dive deep into details of Cell-based Architecture because it ends up to depending on each system and I don’t have enough time to provide bunch of use cases and examples of Cell-based Architecture. Instead, I’d like to stimulate your architect mindset by providing the essence of Cell-based Architecture so that you couldn’t stop considering about that when you design a software system next time :)
Outlines
The series consists of 5 short posts:
Introduction (this post)
How to implement Cell-based Architecture?
The order matters: First, I’d like to explain the problems that Cell-based Architecture solves because some of people give up to understand it while reading like “What is cell?“ or similar. Without understanding about the reasons why Cell-based Architecture was born, it just looks like a toy world example and boring. After explaining about “Why“, I’ll introduce Cell-based Architecture’s core concepts. Then, I’ll show several use cases of Cell-based Architecture with rationales, and finally I’ll explain a few concrete examples of Cell-based Architecture implementations.1
Why Cell-based Architecture? - Introduction
Although I’ll describe this more in the next post, I’d like to briefly introduce the most important topic in this series: “Why Cell-based Architecture?“
In summary, Cell-based Architecture solves two core problems:
Scalability
Availability
Well, probably you’re already familiar with them if you’ve built any application in cloud, and notice that these look the key features that cloud providers offer already e.g. Amazon DynamoDB provides infinite scalability and higher availability SLA out of the box. Why do we need to solve them again, then?
I’ll leave this question open here and let you think about it until the next post comes. Let’s think about why you can’t naively rely on them.
What’s next?
In the next post, I’d like to answer the question above and describe about what is the fundamental problems in cloud development today:
Thank you for reading. If you’re interested in this series, please hit the “Like“ button and share this to any social media. I would be motivated more! Also, subscribe this magazine to receive the upcoming posts for this series!
References
“Reducing the Scope of Impact with Cell-Based Architecture“ by AWS Well-Architected
In this series, I’d like to basically squeeze this document and make it easier to get started. But, if you don’t mind to read this excellent document, I highly recommend to do so because it captures more details than my posts. Probably a good way to follow up my casual posts.
Disclaimer: I’ll try my best but this is a casual content and most of the information are based on my own experience, thus I might miss something important or be wrong. If you really want me to write more detailed research-type document or book, please let me know!