This product is in Public Preview


Updated June 29, 2022

What is Stash?

Stash is a fully managed Key-Value store delivered as a serverless cloud API. Whereas typical Key-Value databases require managing servers, clusters, networking, data partitioning, replication, and more, Stash allows you to store virtually unlimited amounts of data without any operational overhead. Rather than a database, Stash is a data API.

What can Stash be used for?

Stash allows you to store Values associated with Keys, and later retrieve those Values using the same Keys. It can be used as a standalone store for a wide variety of general use cases, or as part of a Stedi workflow.

Many situations exist in which one might want to store some data for later retrieval. Some common scenarios include:

  • Tracking whether a specific document has been processed, or what stage of the processing lifecycle it is in. This is particularly useful when Functions that execute at different times process the same document.
  • Storing information extracted from documents or APIs for later use. This information could be anything from inventory quantities to SKU codes.
  • Storing large mapping tables – for example, a directory with millions of entries that map vendor SKUs to internal SKUs.

How does Stash work?

Stash allows you to create Keyspaces that can store and retrieve any number of Key-Value pairs and serve any level of request traffic. Stash automatically scales up or scales down your Keyspaces throughput capacity without downtime or performance degradation. Stash data is encrypted at rest and in transit, which eliminates the operational burden and complexity involved in protecting sensitive data. All of your data is stored on solid-state disks (SSDs) and is automatically replicated across multiple data centers for built-in high availability and data durability.

Stash is intentionally built with a minimal feature set. The fundamental concepts in Stash are Keyspaces, Keys and Values. Key-Value pairs are always scoped to a named Keyspace, and all operations on Keys and Values must include the name of the Keyspace. Keyspace names are unique in a Stedi account, and can only be reused once the Keyspace has been deleted. Key-Value pairs can be a maximum of 1 KiB in size.

Stash employs a simple interface that is flexible and easy to use, with just a handful of API operations:

  • Create Keyspace. Create a Keyspace in which to store Key-Value pairs.
  • Get Keyspace. See information about a Keyspace.
  • Delete Keyspace. Remove a Keyspace.
  • List Keyspaces. List of your existing Keyspaces.
  • Set Value. Add or update a Key-Value pair.
  • Get Value. Retrieve the current Value of a given Key.
  • Delete Value. Remove a Key-Value pair from a Keyspace.
  • List Values. Retrieve a list of Key-Value pairs from a Keyspace.

A stash Value can be a valid JSON value of type:

  • string
  • number - see limits for numeric constraints
  • boolean
  • array
  • object

For more complete documentation on the data model and API, see the API reference.

Read Consistency

All read (GetValue, ListValues) operations are strongly consistent. Reads always return the most up-to-date data, reflecting the updates from all prior write (SetValue, DeleteValue) operations that were successful.


Frequently asked questions

What is the underlying storage technology?

Stash is built on top of AWS DynamoDB. Each Keyspace maps to a single, dedicated DynamoDB table for tenancy isolation.

What ordering is applied to the ListValues operation?

There is no guarantee on the order of results returned in ListValues responses.

API Reference