Hey Paul,
In the latest release (0.5.0-beta15), this functionality can be found in lamina.query/query-stream. Your query would look something like:
(use 'lamina.query 'lamina.core)
(require '[lamina.time :as t])
(query-stream
#(->> % partition-every (map* #(apply max %)))
{:period (t/minutes 1), :timestamp :timestamp, :payload :value}
ch)
This will emit a stream of tuples looking like {:timestamp X, :value Y} where X is the logical timestamp this would have been emitted at, and Y is the max value for the time range (X - period).
If you change 'query-stream' to 'query-seq', you can do the same for a normal sequence of the values you describe, the returned value will be a lazy sequence of max-values and timestamps.
Let me know if you have any further questions,
Zach