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 sqlite3 and grep.

  • 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.

Visit

Do you like my content?

Sponsor Me On Github