FsStorm


Storm

Namespace: global

Storm abstractions

Nested types and modules

TypeDescription
Configuration

configuration info - received in the handshake and passed into each component/instance

LogLevel

Storm log levels

Functions and values

Function or valueDescription
anchor original msg
Signature: original:'?7271 -> msg:Json -> Json
Type parameters: '?7271

anchor to original message(s) - updates anchors field with id or ids, if the original is a collection of messages

autoAckBoltRunner reader
Signature: reader:(Json -> Async<'?7292>) -> Async<unit>
Type parameters: '?7292

bolt runner that auto acks received msgs For more complex scenarios you may have to write your own runners See documentation on Storm concepts Note: Your implementation should handle "hearbeat" messages (see code below)

defaultHousekeeper
Signature: Json -> unit

In-memory helper for reliable spouts

emit json
Signature: json:Json -> unit

write Json to stdout

inboxMsgHandler (...)
Signature: onEmit:(Json -> unit) -> onAck:(Json -> unit) -> onFail:(Json -> unit) -> onTasks:(Json -> unit) -> MailboxProcessor<Json> -> Async<unit>

InboxProcessor-based protocol handler that can be used with reliable spouts to provide processing guarantees

initIO ()
Signature: unit -> unit
isMono ()
Signature: unit -> bool

test if running on mono runtime

msgId j
Signature: j:Json -> String

get tuple id

msgSource j
Signature: j:Json -> String

get tuple source

namedStream name msg
Signature: name:'a -> msg:Json -> Json
Type parameters: 'a

specify stream to write the tuple into

nextId ()
Signature: unit -> int64

generate tuple ids (works for single instance spouts, only)

reliableEmit housekeeper id json
Signature: housekeeper:(Json -> unit) -> id:Int64 -> json:Json -> unit

write Json to stdout with an ID (for reliable spouts)

reliableSpoutRunner (...)
Signature: housekeeper:(Json -> unit) -> createEmitter:((Int64 -> Json -> unit) -> unit -> Async<unit>) -> Async<unit>

runner for reliable spouts

simpleSpoutRunner createEmitter
Signature: createEmitter:((Json -> unit) -> unit -> Async<unit>) -> Async<unit>

runner loop for simple spouts

stormAck id
Signature: id:string -> unit

multilang ack message

stormFail id
Signature: id:string -> unit

multilang fail message

stormLog msg lvl
Signature: msg:string -> lvl:LogLevel -> unit

multilang log message

stormLogAndThrow msg r
Signature: msg:string -> r:'a -> Async<'a>
Type parameters: 'a

log to storm and throw exception

stormSendPid pid
Signature: pid:int -> unit

multilang pid message

stormSync ()
Signature: unit -> unit

multilang sync message

tuple fields
Signature: fields:seq<obj> -> Json

produce a Storm tuple Json object

tupleJoin x y
Signature: x:Json -> y:Json -> Json

join two touples combines fields from both

Fork me on GitHub