The Shared Memory is lightweight key-value storage. Values in the Shared Memory are associated with keys so that each key is associated exactly with one value. You can think of the keys as "names", or identifiers, of values. Keys must always be unique, in order to unambiguously identify values.
The Shared memory that stores N values can be represented as below:
From a technical standpoint, the Shared Memory is part of the same EasyMorph repository that stores data connectors.
The "Shared memory" action is intended for reading, writing, modifying, and deleting values in the Shared Memory.
- Access restriction - the same access restrictions as for data connectors apply
- Concurrency - the shared memory supports simultaneous operations from different computers
- EasyMorph data types - values are remembered and recalled in exactly the same data types as in EasyMorph - number, text, boolean, empty value. Errors can’t be remembered by design.
- Big values - you can store large text objects, such as JSON in the store
- Encryption - all stored data is encrypted
The shared memory can be convenient in many cases:
- Store temporary values - E.g. store the last loaded date when doing incremental loads.
- Pass values between workflows and users - Similarly to the shared connectors, the shared memory can be accessed from different Desktops. Once a value is remembered, it can be accessed by all Desktops and Server spaces that use the same repository
- Environment configuration - The shared memory can be used to store configuration settings that are different in PROD and TEST environments.
- Workflow variable - While project parameters are constant and don’t change during a workflow run, the shared memory values can be set, removed, and changed in a single workflow
- Lightweight data store - Sometimes, using a relational database to store and share just a few values looks like overkill. The shared memory can be more appropriate for such cases.