swirl_flow behaviour (swirl v0.2.8)
View SourceSummary
Types
-type flow() :: #flow{id :: binary(), module :: module(), module_vsn :: undefined | module_vsn(), stream_filter :: undefined | string(), stream_names :: undefined | stream_names(), mapper_window :: undefined | pos_integer(), mapper_nodes :: undefined | [node()], mapper_opts :: mapper_opts(), reducer_window :: undefined | pos_integer(), reducer_node :: node(), reducer_opts :: reducer_opts(), reducer_skip :: undefined | boolean(), output_opts :: output_opts(), heartbeat :: undefined | pos_integer(), window_sync :: undefined | boolean(), started_at :: undefined | erlang:timestamp(), start_node :: node()}.
-type flow_opts() :: {heartbeat, pos_integer()} | {mapper_opts, mapper_opts()} | {mapper_window, pos_integer()} | {output_opts, output_opts()} | {reducer_opts, reducer_opts()} | {reducer_skip, boolean()} | {reducer_window, pos_integer()} | {stream_filter, string()} | {stream_names, stream_names()} | {window_sync, boolean()}.
-type mapper_opts() :: term().
-type module_vsn() :: pos_integer().
-type output_opts() :: term().
-type reducer_opts() :: term().
-type stream_name() :: atom().
-type stream_names() :: [stream_name()].
Callbacks
-callback map(stream_name(), event(), mapper_opts()) -> [update()] | update() | ignore.
-callback output(flow(), period(), [row()], output_opts()) -> ok.
-callback reduce(flow(), row(), reducer_opts()) -> update() | ignore.