Welcome to the Marble Changelog!
Since we announced Marble last week, we've already shipped a handful of features and onboarded dozens of developers to the platform.
Here's the latest.
Marble is organized around projects and deployments. This week, we introduced three new actions that make it easier manage deployments within a project.
Each project always has one "current" deployment. This is the deployment that's currently served over the project-level HTTP endpoint and any custom domains associated with the project.
By default, the most recent deployment to become healthy within a project automatically becomes the current deployment. This week, we introduced a Promote action to immediately change the current deployment.
The new Rollback action is similar to promote to current, but can be applied on a Paused or Crashed deployment. The deployment restarts, and becomes the current deployment as soon as it enters the Healthy state.
If a deployment crashes (and exhausts all retries), it enters the crashed state. This week we introduced a "Restart" action for crashed deployments, which gives the deployment another chance to become healthy.
The Restart action is particularly useful when the deployment has crashed due to a transient issue (like a chain outage) that has since been resolved.
Earlier this week, Kyle published a technical blog post describing our approach to performance in Ponder. The post includes details about three of our most effective performance optimizations: the in-memory database, delayed errors, and speculation.
Read more on the Ponder blog.
Ponder 0.11.16 added support for WebSockets (eth_subscribe
) for new block notifications. In our tests, this improved realtime indexing latency by ~35% and reduced RPC usage in most cases.
Check out the thread on X and the documentation for more details.