denoland / denoland/celld

Deploying without the CLI

Open
#187 0 comments 1 reaction 0 assignees View on GitHub
Dominant language
Rust
Stars
4.6k
Forks
171
PR merge metrics
No merged PRs in 30d

Description

We are evaluating celld for a multi-tenant SaaS. Our customers require their data to sit in their own blob storage container, and some run on their own release cadence, so the shape is one fleet per customer with its own bucket and its own pinned version. That is a few hundred fleets. Our control plane would publish a Worker bundle to one bucket when a tenant is provisioned, and to many buckets, not necessarily all, on each release.

We would rather not shell out to `celld deploy` from a service. From `crates/celld/deploy.rs`, the CLI writes an immutable prefix (`modules`, `manifest.json`, `assets.json`) and then moves `deploy//current.json` and `deploy/current.json`. `Manifest` already carries `schema_version` and `required_features`, and `DeployPointer` has `rollout.percent`.

Two questions:

1. Can we write that layout ourselves (esbuild library + storage SDK) and rely on it, with a node refusing an unknown `schema_version` and keeping its current deployment? Or is the CLI the only supported path and the layout may change without notice?
2. If writing the bucket directly is not the intended route, would a deploy endpoint on the internal listener be in scope, taking a prebuilt bundle and doing what the CLI does?

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reading crates/celld/deploy.rs, especially Manifest, DeployPointer, and the pointer-writing flow. Determine whether the bucket layout and schema handling are supported contracts or internal details, then review the internal listener entry points for an existing deployment API. Done means documenting the supported integration path or agreeing on a scoped endpoint proposal.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
backend-api-design, cloud, distributed-systems
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.