precept

Preception!
2019-07-14T16:46:02.004900Z

What's used as the in memory fact store? Can it be synced with datomic?

alex-dixon 2019-07-14T16:49:08.006700Z

Hi. Sorry just saw this. We don’t have isComponent. The entity macro is the closest support for anything like pull

alex-dixon 2019-07-14T16:53:00.010300Z

Apart from Clara the in memory storage is a map in a Clojure atom. In the code it’s referred to as the store. That’s what subscriptions are based on. There’s also indexes used to enforce cardinality and uniqueness

alex-dixon 2019-07-14T17:09:18.020500Z

You can sync with datomic but there aren’t any highly developed facilities specific to that. There are some helpers that allow separation of a client schema from a datomic schema to allow pulling all facts from the datomic schema. The main use case for that is to help filter out client only concerns like the state of a button. Precept allows complex value slot types like vectors and maps that datomic doesn’t have a direct equivalent for. You could mark those can be marked as client only and filter them out. Otherwise at this point you’d need to hand convert them to a datomic supported format

2019-07-14T18:56:06.022600Z

@alex-dixon > apart from clara, Meaning precept also uses what ever storage clara is building? I assume this structure is in memory on the browser side. Thanks!

alex-dixon 2019-07-14T19:05:48.029900Z

Effectively yes. Precept doesn’t interact with Clara’s rete network for anything directly as part of its implementation. A more memory efficient implementation might try to do that. Everything’s immutable so there’s probably some structural sharing but no doubt values being indexed in multiple places. Our indexes for one are covering similar to datomic