Boris Cherny's Blog

Data Management on the Web Still Sucks

March 13, 2021

It’s 2021, and data management on the web still sucks. This is crazy!

If you’re building a web app at scale you have plenty of options for data fetching, transport, caching, and management:

Each of these does a few things well, leaving the rest to you. What do you need to do well to be a good data fetching library?

Fetching Data

Updating Data

Why?

I think the reason this hasn’t been solved is it’s a hard problem that’s at the intersection of a bunch of fast-moving technologies:

  1. Programming languages (to infer what data depends on what)
  2. Databases (client-side stores are small databases)
  3. Server APIs and protocols (REST, GraphQL, RPC, etc.)
  4. UI frameworks (at this point, React has won)
  5. User experience and perceived performance

So far, every attempt at solving data fetching has either tightly coupled all of these layers, leading to trouble gaining mass adoption (think Meteor); other solutions have tackled just one layer, ignoring the rest. This smells to me like the abstractions & APIs for each layer are wrong: you shouldn’t need tight coupling to solve data fetching. Instead, you need better abstractions.

Is this a problem that can be solved?