devloperdevesh / devloperdevesh/FaultPlane
research(storage): prototype checkpoint ring buffer backend
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 2
- Forks
- 1
- Avg merge
- 14m
- Merged PRs (30d)
- 57
Description
Problem
The current memory storage implementation uses standard synchronization primitives to protect workflow state.
While this provides correctness, high-frequency checkpoint operations may benefit from exploring alternative memory layouts optimized for sequential state access patterns.
Proposed Solution
Prototype a ring buffer based checkpoint storage backend.
The implementation should:
- Create an experimental ring buffer storage component.
- Maintain checkpoint ordering using head and tail positions.
- Explore safe concurrent access patterns.
- Compare performance against the existing MemoryStore.
- Add benchmarks for throughput and memory behavior.
Goals:
- Evaluate alternative storage layouts.
- Understand performance trade-offs.
- Keep the current storage implementation unchanged.
Alternatives
Alternative approaches considered:
-
Continue using map-based storage with mutex protection.
- Simple and reliable but may limit experimentation with high-frequency workloads.
-
Introduce external databases immediately.
- Adds operational complexity before storage requirements are fully defined.
Use Case
A ring buffer experiment can help evaluate future optimizations for:
- High-frequency checkpoints
- Local state buffering
- Runtime recovery pipelines
- Distributed synchronization preparation
Additional Notes
Requirements:
- This is an experimental backend.
- Existing storage interfaces must remain compatible.
- Production storage behavior should not change.
- Include benchmark comparisons.
Related areas:
internal/storage/internal/control/checkpoint.go
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading the existing storage implementation under internal/storage/ and the checkpoint flow in internal/control/checkpoint.go. Identify the current MemoryStore interface and its compatibility requirements before designing the experimental backend. Done means a ring buffer prototype preserves checkpoint ordering, includes safe concurrent access, and has benchmark comparisons for throughput and memory behavior without changing production storage.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- backend, distributed-systems, performance
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100