fauna-schema-migrate
clientdb
fauna-schema-migrate | clientdb | |
---|---|---|
2 | 3 | |
88 | 639 | |
- | 0.0% | |
4.5 | 0.0 | |
3 months ago | about 1 year ago | |
TypeScript | TypeScript | |
MIT No Attribution | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
fauna-schema-migrate
-
The Future of the Web Is on the Edge
Dynamo has definitely been a bit of a nightmare to work with, but I actually find Fauna reasonably pleasant. You're not going to get the vast ecosystem of SQL based tooling, but the query language itself is designed to be composable, which reduces the need for ORMs (though I do still miss the type generation from Prisma sometimes), and there's a pretty nice declarative schema migration tool that handles that aspect pretty well: https://github.com/fauna-labs/fauna-schema-migrate
Haven't found myself needing much else from a DB.
-
Migrating your GraphQL schema with Fauna
Tip: Use tooling for the final step! Fauna provides the Fauna Schema Migrate tool and a Serverless Framework plugin to help you manage your resources in Fauna as code.
clientdb
-
The Future of the Web Is on the Edge
Replicache (https://replicache.dev/) and clientdb (https://clientdb.dev/) are the only productized versions of this architecture I'm aware of (please do let me know if anyone is aware of others!).
But the architecture itself has been used successfully in a bunch of apps, most notable of which is probably Linear (https://linear.app/docs/offline-mode, I remember watching an early video of their founder explaining the architecture in more detail but I can't seem to find it anymore).
Basically the way authorization works is you define specific mutations that are supported and allowed, with a client-side and server-side implementation. The client side gets applied optimistically and then sync'ed and ran on the server, which applies authorization rules and detects and handles conflicts, which can result in client state getting rolled back. Replicache has a good writeup here: https://doc.replicache.dev/how-it-works#the-big-picture
-
TinyBase v2.0: “the reactive data store for local-first apps”
This looks really cool, love seeing more innovation in this space!
At first glance this seems to be mostly targeted towards single-user apps where each user would have their own database that can be sync'ed to a remote server, but still isolated from data for other users, similar to the CouchDB+PouchDB model?
At least it looks that way since I couldn't see anything around authorization and conflict resolution. Not that there's anything wrong with focusing on this use case, a lot of apps can function perfectly fine this way.
A few other interesting new players:
https://replicache.dev/
https://clientdb.dev/
- ClientDB
What are some alternatives?
migrations - Supporting FQL and GraphQL for the blog and video series "Evolving the structure of your Fauna database"
RxDB - A fast, local first, reactive Database for JavaScript Applications https://rxdb.info/
workerd - The JavaScript / Wasm runtime that powers Cloudflare Workers
tinybase - The reactive data store for local‑first apps.
serverless-fauna