Skip to main content

State Store

The store-flows crate offers the ability to store key/value. We can build stateful serverless functions in flows.network. By enhancing the ability of your flows functions to persist and retrieve data, the library offers a simple way to keep track of state across multiple function invocations.

Usage

The following example offers a taste of what this library can do:

use serde_json::json;
use lambda_flows::{request_received, send_response};
use store_flows::{get, set, Expire, ExpireKind};

#[no_mangle]
pub fn run() {
if let Some((_qry, _body)) = request_received() {
let mut c = match get("count") {
Some(v) => v.as_u64().unwrap_or_default(),
None => 0,
};

c = c + 1;

set(
"count",
json!(c),
Some(Expire {
kind: ExpireKind::Ex,
value: 20,
}),
);

send_response(
200,
vec![(String::from("content-type"), String::from("text/html"))],
c.to_string().as_bytes().to_vec(),
);
}
}

This is a Lambda flow function. It can show the times it has been called. When a request is received, we get the previous count number from store, imcrement it by one, then set it back to store.

The whole document is here.

Flows that used the store-flows crate