<aside> 📺 Note that the following two sections of this document are available in video format. There are also answers to questions from the WG on this video. But the video is a little bit outdated.
</aside>
Over a considerable period, I have been immersed in the design of various dapp architectures. Each dapp presents its unique challenges to overcome. Regardless of the specific project, a set of recurring questions always arises:
If you have ever designed a dapp on the Internet Computer (IC), I'm certain you have asked yourself these same questions.
Personally, I have grown weary of constantly pondering these questions. I no longer want to be burdened by the limitations of the Internet Computer. I want to focus solely on my business challenges.
It has become evident that action must be taken. It would be ideal if there were a tool available that abstracts away the platform limitations and effortlessly handles all aspects of scalable data, freeing me to concentrate exclusively on my business objectives.
This ideal tool would allow me to describe my whole database in a single module. Then describe all possible transactions which could happen to this database.
Then I deploy a single canister - a shard, and the data lives and grows inside this shard, as users start using my dapp.
Then, when it reaches the maximum memory limit, the shard spins up empty copies of itself.