SkyVault is a high-performance, scalable object-store backed key-value store designed for efficient data management and retrieval.
- Batcher: Efficiently batch operations to write to Objectstore
- Cache: Fast in-memory access on the serving path
- Index: Handles read requests and serves them uses cache
- Worker/Orchestrator: Background jobs to compact/purge data in Objecstore
SkyVault's architecture is designed for high scalability and performance:
Technology | Description |
---|---|
Connect | Type-safe APIs with Protobuf and gRPC |
PostgreSQL | Relational database (via pgx) |
MinIO | S3-compatible object storage |
Prometheus | Monitoring and metrics |
River | Background job processing |
Kubernetes | Container orchestration platform |
Helm | Package manager for Kubernetes |
Podman | Daemonless container engine |
- Go 1.24+
- Podman, k8s and helm for local development
- Just command runner
- Clone the repository
- Run
just k8s-dev
to start everything in k8s - Run
just k8s-stress
to send some load
Contributions to SkyVault are welcome! Here's how you can contribute:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
Please ensure your code follows the project's style guidelines and includes appropriate tests.
See our Security Policy for reporting security vulnerabilities.
This project is licensed under the terms in the LICENSE file.