How does Evolu ensure data consistency and prevent conflicts when multiple users are making changes offline?
Evolu utilizes CRDTs (Conflict-free Replicated Data Types) to merge changes without conflicts. This allows for seamless synchronization and data integrity even when users are operating in a local-first environment.
What specific database technology does Evolu leverage for local storage across different environments?
Evolu uses SQLite for local storage, providing broad compatibility across all major browsers, Electron applications, and React Native projects. This ensures a consistent and robust local data layer.
Can Evolu be integrated with existing TypeScript projects, and does it offer type safety for database interactions?
Yes, Evolu is a TypeScript library designed for easy integration into TypeScript projects. It provides a type-safe database schema and SQL capabilities through its integration with Kysely.
What mechanisms does Evolu employ for real-time data updates and synchronization?
Evolu supports real-time queries and synchronization primarily through WebSockets. While WebSockets are the default transport, the platform is designed to accommodate other transport mechanisms as well.
How does Evolu handle data security, particularly concerning synchronization and backups?
Evolu implements end-to-end encryption for both synchronization and backup processes. This ensures that data remains secure and private throughout its lifecycle, from local storage to cloud backups.
Is it possible to host the Evolu Relay server independently, or is it a managed service?
Evolu offers a self-hostable Relay server, providing users with full control over their infrastructure. The library itself is also open-source under the MIT License.