Project Status

Platforms and Frameworks

Databases

Query Language

  • Filters, sorts, limits, relationships, and exists are supported.
  • Queries can have ttl to keep data synced across sesssions.
  • Zero will stay within a (configurable) client-side row limit using LRU.
  • Aggregates (count, min, max, group-by) are not yet supported.
  • Full-text search is not yet supported (you can sometimes simulate with ILIKE, though it scales linearly).
  • Infinite/virtual scroll is possible, but not easy or optimal.

Performance

  • We do not have a query analyzer, and do not do any join reordering. It's sometimes, but not always possible to manually reorder. Because of this, some queries (especially exists) can be pathological. We are actively working on this.
  • Every query is a hybrid query. We haven't yet implemented "client-only" queries, meaning patterns like typeahead search can easily crush the server if the query is expensive.
  • We have basic CLI tools to understand query performance, but we lack a full-featured inspector to understand at a glance what queries are open or slow.
  • We share queries within a "client group" (e.g. all tabs in a browser), but not across groups. This means that if you have many users doing the same query, they will duplicate all that work server-side.

Miscellaneous

  • We do not have a way to limit queries to only expected/allowed forms (in progress).
  • We do not have a good way to support previews (in progress).
  • Running Zero requires deploying it yourself to AWS or similar. Running in a multinode, zero-downtime way is possible (we do it for zbugs), but significant effort. Running single node is easier, but updating the server takes it down for a minute or so (we are working on a SaaS solution).