; persist/event — an event is the unit of the log facet: ; {:stream :seq :type :at :data} ; stream = which append-only stream, seq = 1-based position within it, ; type = event kind, at = caller-supplied timestamp (never a clock here: ; replay must stay pure), data = payload dict. (define persist/event (fn (stream seq type at data) {:data data :type type :at at :stream stream :seq seq})) (define persist/event-stream (fn (e) (get e :stream))) (define persist/event-seq (fn (e) (get e :seq))) (define persist/event-type (fn (e) (get e :type))) (define persist/event-at (fn (e) (get e :at))) (define persist/event-data (fn (e) (get e :data)))