Adds Locker support to DynamoDB and Memory KV stores
Adds "exactly once" examples to docs
Refactors enrich_kv_store_set transform
Motivation and Context
This adds the ability for any message to become "locked" in a KV store (typically, a distributed database) and have a transform applied to it. This addresses #59 with some additions and caveats:
This is not idempotency, but idempotency is possible by combining this transform with a few others
Any transform function can make use of this feature, not just "producers" (this concept no longer exists in Substation v1.0+)
How Has This Been Tested?
Integration tested using the added examples. Failure scenarios can be tested using the DynamoDB distributed lock example.
Types of changes
[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
Checklist:
[x] My code follows the code style of this project.
[x] My change requires a change to the documentation.
Description
meta_kv_store_lock
transformenrich_kv_store_set
transformMotivation and Context
This adds the ability for any message to become "locked" in a KV store (typically, a distributed database) and have a transform applied to it. This addresses #59 with some additions and caveats:
How Has This Been Tested?
Integration tested using the added examples. Failure scenarios can be tested using the DynamoDB distributed lock example.
Types of changes
Checklist: