celld: self-hosted, distributed Durable Objects
celld: Overview and Functionality
Celld is a self-hosted, distributed system designed to handle durable objects using a model that emphasizes simplicity in management and reliability. It utilizes a unique architecture that relies on a distributed coordination method without traditional consensus protocols.
Core Components and Workflow:
Bucket as Coordinator:
- No need for membership protocols, failure detectors, or consensus.
- Ownership is managed through atomic writes in a bucket, ensuring that each cell's ownership is clearly defined.
State Management:
- Each cell functions as a SQLite database.
- State replication is handled continuously by transmitting each cell's SQLite state to the bucket in LTX formats.
Infrastructure Integration:
- Celld can be deployed on dedicated virtual machines, ensuring decentralization.
- Integrates with existing infrastructure, shipping requests and responses via a user’s infrastructure and S3 buckets.
Reliability Highlights:
Durable Objects Model:
- Celld incorporates this robust programming approach while decentralizing the management and operational integrity.
Resiliency and Recovery:
- Ensures quick recovery by relocating cell ownership through a leasing mechanism, facilitating rapid restoration without vendor dependency.
Customization of Failure Domains:
- Users have control over their failure domains, with no shared schedulers or placement layers that might intertwine workloads with other users.
Transparency and Accountability:
Users have comprehensive visibility over their systems, with data and logs on their disks, enabling straightforward troubleshooting and analysis using local tools like
sqlite3andgrep.While self-hosting doesn’t inherently increase reliability, it provides clear, manageable failure domains directly tied to the user’s infrastructure and choices.
Final Thoughts:
Celld is seen as a continuation and homage to Cloudflare’s Durable Objects model, enabling it to operate on any infrastructure that leverages technologies such as V8, SQLite, LTX, and S3.