Home / 

Stash

What is Stash?

Stash is a key-value store that you can use to power your B2B integration or EDI workflow. Use it to track documents processed, increment control numbers, or reference lookup tables, all using a simple API. There are no servers, clusters, networking, or replication to manage.

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 data store for a wide variety of general use cases, or as part of an EDI workflow built on Stedi.

Common use cases for Stash include:

  • Complete an end-to-end EDI integration after you have configured Stedi Core for a new trading partner. For example, you can use Stash to configure where you want to send processed data.
  • Extend an EDI integration. For example, you might want to store information extracted from documents or APIs for later use, such as inventory or price catalogs.
  • Store 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 allow you to retrieve any number of key-value pairs. Stash automatically scales up or down your Keyspace throughput capacity, with no performance degradation. All Stash data is encrypted at rest and in transit, which eliminates the operational burden and complexity involved in protecting sensitive data. Stash is also architected to ensure high availability and data durability.
Stash is intentionally built with a minimal feature set. The fundamental concepts in Stash are keyspaceskeys 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 8 KiB in size.
A keyspace can hold an unlimited amount of data, and system performance improves as a keyspace is accessed more often. We recommend minimizing the number of keyspaces used (the default per-account limit is 10, though that can be raised upon request), and only creating additional keyspaces when building multiple applications inside of one account, or when different teams each need to manage their own data. In order to avoid key conflicts when using the same keyspace for different use cases within a single application, we recommend prepending keys with a type identification or sub-application identifier.
Stash's interface 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.

Ordering

For the ListValues operation, there is no guarantee on the order of results returned.

Examples

What is Stash?What can Stash be used for?How does Stash work?Read consistencyOrderingExamples

Feedback

Have an idea for something we could improve? Page not clear? We love feedback - send us a message.

Stedi

Build EDI integrations fast, without being an EDI expert

Start building
About
ProductPricingCareersContactBlog
Follow
  1. Twitter
  2. GitHub
Backed by
AdditionBloomberg BetaFirst RoundStripeUSV
Customer AgreementService TermsPrivacy Notice

Stedi is a registered trademark of Stedi, Inc. All names, logos, and brands of third parties listed on our site are trademarks of their respective owners (including “X12”, which is a trademark of X12 Incorporated). Stedi, Inc. and its products and services are not endorsed by, sponsored by, or affiliated with these third parties. Our use of these names, logos, and brands is for identification purposes only, and does not imply any such endorsement, sponsorship, or affiliation.