What is the project about?
Rivet is a platform for building scalable, stateful, and serverless applications, particularly focusing on real-time, edge, and agent-based applications. It provides a simplified backend development experience with features like persistent state, remote procedure calls, and edge networking.
What problem does it solve?
Rivet aims to simplify backend development by abstracting away the complexities of infrastructure management, scaling, and state management. It addresses the limitations of traditional serverless functions (like timeouts) and the complexities of managing stateful applications. It allows developers to focus on application logic rather than infrastructure.
What are the features of the project?
- State & Persistence: Provides a way to manage application state that behaves like in-memory data but is persistently stored.
- Remote Procedure Calls (RPC): Enables type-safe communication between client and server.
- Runs Forever, Sleeps When Idle: Actors (the core building blocks) are always available but only consume resources when active.
- Edge Networking: Applications are automatically distributed closer to users for low latency.
- Fault Tolerance: Built-in resilience to crashes and failures, ensuring application and state availability.
- Scales to Zero: Automatically scales resources based on demand, reducing costs.
- No Servers & No Configuration: Simplified deployment and scaling without manual configuration.
- Batteries Included Monitoring: Built in monitoring.
- Support for Multiple Runtimes: V8 isolates, WebAssembly, and containers.
What are the technologies used in the project?
- Rust: The core language of the platform.
- V8 & Deno: For running actor isolates.
- FoundationDB: Used for storing actor state.
- CockroachDB: Used for OLTP (Online Transaction Processing).
- ClickHouse: For developer-facing monitoring.
- Valkey: For caching.
- NATS: For publish/subscribe messaging.
- Traefik: For load balancing and network tunnels.
What are the benefits of the project?
- Simplified Development: Reduces complexity in building and deploying backend applications.
- Scalability: Handles large numbers of connections and high throughput.
- Cost Efficiency: Scales to zero when idle, minimizing resource consumption.
- Low Latency: Edge networking brings applications closer to users.
- Resilience: Fault tolerance ensures high availability.
- No Server Management: Developers don't need to manage servers or infrastructure.
- No Timeouts: Unlike traditional serverless, Rivet actors can run indefinitely.
What are the use cases of the project?
- AI agents
- Game Servers
- Collaborative applications
- Local-first apps
- Discord Activities
- Chat Apps
- Yjs Sync & Storage
- Sandboxed Code Execution
