What keeps logs for others to read, by the rules every store keeps
(contract/streaming.md, "The rules a store keeps"). memory_store()
keeps them in this R session. A store of your own is a list (or an
environment) of three functions:
Details
append(events): append one event, or a list of events as one step (kept whole or not at all). Returns"kept"or"duplicate", or raises the contract's refusal withstore_refuse(). Any other error is "no answer": the append may have been kept, and the writer sends it again.claim(tree): a later writer claims an unfinished log:list(writer, after).read(tree, after = NULL): the kept events after a position (all of them afterNULL); refusesevent-unknownwhen it has no such event.
Every event is checked against the contract's event schema first.