pathom

:pathom: https://github.com/wilkerlucio/pathom/ & https://pathom3.wsscode.com & https://roamresearch.com/#/app/wsscode
Tuomas 2020-06-06T16:53:50.194200Z

I’m looking for tips on what docs/resources to check for more info. I’m getting inconsistent results with paraller-parser. I have avoided parallel stuff by building resolvers that give all the data that client queries need in one resolvers. Now I have a case where I output something and it get’s used as input in another resolver. Everything works consistently in the repl, but fulcro client queries get inconsistent responses (for identical transit-params). I mostly get not-found for the entities that are resolved in parallel but sometimes I get the same response as I get in the repl.

2020-06-06T18:02:27.196300Z

What does your vector of readers in ::p/reader look like? This parallel setup is working for me with a fulcro app:

{::p/mutate
 pc/mutate-async
 
 ::p/env
 {::p/reader
  [p/map-reader
   pc/parallel-reader
   pc/open-ident-reader
   p/env-placeholder-reader]
  
  ::p/placeholder-prefixes
  #{">"}}}

wilkerlucio 2020-06-06T19:35:24.198500Z

@koivistoinen.tuomas my general recommendation is to not use parallel parser, unless you can take real benefit from it, and I guess most users don't need it. parallel parser is way more complex than the others, and adds significant overhead, so unless you are running quite large queries that spend most time on IO, the serial parser is probably a better option, will be easier to understand, easier to debug, and probably faster in most cases

🙏 1
Björn Ebbinghaus 2020-06-08T11:17:47.212700Z

Hm. And I thought the parallel parser was the recommended way…