operating-function / pallas

An event sourced, purely functional application platform.
https://docs.opfn.co
Other
43 stars 0 forks source link

Docs Improvements Round 2 (started 2024-08-21) #17

Open cvanetten opened 3 months ago

cvanetten commented 3 months ago

README

Documentation site

kjekac commented 3 months ago

This looks very good! A few comments and thoughts:

“Regularity” and “homoiconicity” and not well known terms; update them to something more understandable

We need to talk about the value of Rex or just drop this. Only hardcore lispers care about these properties in the abstract. The value of Rex is the same as that of S-expressions: the syntax is decoupled from the language and so can be reused again and again. It's the whole "you want generic components that can be reused, since you can't afford to throw extra labor at specialized components".

After installation, users should stack run pallas instead of just pallas; update docs

(Or first do stack build pallas && stack install pallas, though i suppose that's a bit intrusive.)

How can we do parallel computation while also promising determinism? This needs to be explained

We don't, we promise deterministic replay.

Remove the word “crash”; explain what happens if you have a type error (or an assertion fails)

"Crash" as used in these places is really more aptly named "compilation failure". It's a simple concept that basically all programmers are familiar with. "Crash" should be reserved for runtime crashes, and we should maybe mention that you should never do this, though probably not in the same place as we discuss compilation failures.

Add material about the current state of error handling and recovery. What happens if I do something bad to my database? What happens if I get stuck replaying an event that caused it to crash?

First, see the previous note. If a cog crashes while processing an event, that's fatal. It will not continue to receive events, so there's nothing to replay.

cvanetten commented 2 months ago

I'm calling the initial Reference material done for now. We have:

My next step will be adding type and function signatures to all of the existing references. After that I think there's probably two primary tracks:

cvanetten commented 1 month ago