orbitjs / orbit

Composable data framework for ambitious web applications.
https://orbitjs.com
MIT License
2.33k stars 134 forks source link

[Docs] Add technical description of key request-processing, sync components #955

Open bradjones1 opened 2 years ago

bradjones1 commented 2 years ago

In https://github.com/orbitjs/orbit/issues/953 I discovered that the inverse transform operator, employed by MemoryStore, omits some records from updates if they do not appear to contain any meaningful new data.

From watching my network requests and comparing the data returned from Orbit, paired with some test cache-clearing, led me to this code. The docs have recently received a welcome update, but I think it would be helpful for a technical deep-dive section that at least describes the various components in play, e.g. this inverse transform operator. I'm slowly learning the details of Orbit's internals, but they're complicated. There's also not much in the way of inline comments, so I have to rely on a static analysis much of the time to understand the internal code flow.

This isn't to cast aspersions - Orbit is great! This is just a stub issue to hopefully help with documenting these more obscure/not entirely self-evident internals. Hopefully I can help out with that as I get more experienced in both TypeScript and Orbit itself.