1.0 Roadmap

Schema

Mutators

Queries

  • Finalise design for query DSL
  • Design system for subscriptions
  • Make sure updates to queries are batched before revealing to the UI
  • Add lazy accessor to queries to track just insert/update/delete (like experimental watch() API)
  • Connect query layer with the coverage tracker

Batcher

Bootstrap

Store

  • Design APIs to write to the store from:
  • Handle the store-updated Broadcast Channel coordinator

Persistence (IDB)

Integrations

  • Solid.js wrapper with Stores on the reactive layers
  • React wrapper with stable identity
  • Figure out how to play well with SSR:
    • Surface query interface in a way that allows usage with a Loader function
    • Make IDB storage purely pluggable
    • Guard BroadcastChannel messages to only run on client

Performance

  • Make sure store APIs are fast
  • Add perf tests for store => query connection
  • Ensure that rebasing is fast

QoL


Future

  • Play code golf on largest modules to get things down to <10kb total
  • Add https://rxdb.info/key-compression.html
  • Go through https://github.com/rocicorp/replicache/releases and implement all useful features.
  • Eviction
  • Partial migrations
  • Give materializers access to the database
  • Figure out a syncgroups abstraction (with shared data)
  • Add IVM for where queries (store.issues.where(q => q.eq("status", "open"))) to the query language, with sorted-btree for indexing.
    • gte
    • lte
    • eq
    • in

Dead ends

Events & Projectors