com.rpl.rama.ops

current-microbatch-id

(current-microbatch-id)

Returns ID of current microbatch attempt. Can only be called within a microbatch topology. This can be used to achieve fault-tolerant exactly-once update semantics when updating external systems with Rama’s integration API.

current-task-id

(current-task-id)

Returns task ID where event is running.

expand

(expand *data :> & fields)

Emits every element of input list as a separate field. Useful for processing elements of fixed-size lists.

Example:

(ops/expand *data :> *a *b *c)

explode

(explode *sequence :> *element)

Emits once for each element of a sequence. For example:

(?<-
  (explode [1 2 3] :> *v)
  (println *v))
1
2
3
nil

explode-indexed

(explode-indexed *sequence :> *index *element)

Same as explode except also outputs the index of each element. For example:

(?<-
  (ops/explode-indexed [:a :b :c] :> *i *v)
  (println *i *v))
0 :a
1 :b
2 :c
nil

explode-map

(explode-map *map :> *key *value)

Like explode except emits each key/value pair as separate elemnts. For example:

(?<-
  (ops/explode-map {:a 1 :b 2 :c 3} :> *k *v)
  (println *k *v))
:a 1
:b 2
:c 3
nil

module-instance-info

(module-instance-info)

Returns ModuleInstanceInfo for module and worker of running event.

range>

(range> *start *end :> *value)

Like Clojure range, but emits once per element in the range.

Example:

(?<-
  (range> 10 13 :> *v)
  (println *v))
10
11
12
nil

sum

(sum nums)

Returns sum of values in provided sequence.

vget

(vget $$pstate :> *value)

Extracts contents of a PState as a value. Should only be called on PStates with a top-level Class schema.