flink-statefulfun-0.3.0.0: src/Network/Flink/Stateful.hs
-- | Primary module containing everything needed to create stateful functions with Flink.
--
-- All stateful functions should have a single record type that represents the entire internal state
-- of the function. Stateful functions API provides many "slots" to store state, but for the purposes of this library
-- that is hardcoded to the single key `flink_state` which you can see in the example @module.yaml@.
--
-- The Serde typeclass abstracts serialization away from the library so that users can decide how
-- state should be serialized. Aeson is very convenient so I use it in the example, but protobuf or any other
-- binary format is also acceptable. Flink essentially stores function state as an opaque 'Data.ByteString.ByteString' regardless.
--
-- When running your program don't forget to pass @+RTS -N@ to your binary to run on all cores.
module Network.Flink.Stateful
( StatefulFunc
( insideCtx,
getCtx,
setCtx,
modifyCtx,
sendMsg,
sendMsgDelay,
sendEgressMsg,
sendByteMsg,
sendByteMsgDelay
),
flinkWrapper,
createApp,
flinkServer,
flinkApi,
Serde (..),
FunctionTable,
JsonSerde (..),
ProtoSerde (..),
jsonState,
protoState,
serdeInput,
protoInput,
jsonInput,
)
where
import Network.Flink.Internal.Stateful
( StatefulFunc(..),
JsonSerde(..),
ProtoSerde(..),
Serde(..),
FunctionTable,
jsonState,
protoState,
flinkApi,
createApp,
flinkServer,
protoInput,
serdeInput,
flinkWrapper,
jsonInput )