You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/src/main/asciidoc/dynamodb.adoc
+28Lines changed: 28 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -186,3 +186,31 @@ Note that `DynamoDbClientCustomizer` beans are applied **after** `AwsSyncClientC
186
186
187
187
Since it depends on how you will use DynamoDb integration providing a list of IAM policies would be pointless since least privilege model should be used.
188
188
To check what IAM policies DynamoDb uses and see which ones you should use please check https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/using-identity-based-policies.html[IAM policies]
189
+
190
+
=== Spring Integration Support
191
+
192
+
Starting with version 4.0, Spring Cloud AWS provides https://spring.io/projects/spring-integration[Spring Integration] components for Amazon DynamoDB.
193
+
194
+
The `DynamoDbMetadataStore` is a https://docs.spring.io/spring-integration/reference/meta-data-store.html[`ConcurrentMetadataStore`] implementation to store and retrieve key-value entries in the specific DynamoDB.
195
+
It requires a `DynamoDbAsyncClient` and default table name is `SpringIntegrationMetadataStore`.
196
+
If the table is not present, the `DynamoDbMetadataStore` creates it on its initialization issuing an async `dynamoDB.createTable()` request.
197
+
The table structure is like:
198
+
199
+
- the `metadataKey` is a string table key as a hash;
200
+
- the `metadataValue` is a string for entry value;
201
+
- the `expireAt` is time-to-live attribute according to respective algorithm in DynamoDB.
202
+
203
+
See `DynamoDbMetadataStore` Javadocs for more information.
204
+
205
+
The `DynamoDbLockRegistry` is an `ExpirableLockRegistry` and `RenewableLockRegistry` implementation for the https://docs.spring.io/spring-integration/reference/distributed-locks.html[`DistributedLock`] abstraction based on DynamoDB table.
206
+
The supporting `DynamoDbLockRepository` class is for DynamoDB table management and low-level DynamoDB API interaction.
207
+
It requires a `DynamoDbAsyncClient`, and the default table name is `SpringIntegrationLockRegistry`.
208
+
209
+
The table structure is like:
210
+
211
+
- the `lockKey` is a string table key as a hash;
212
+
- the `lockOwner` is a string for lock record ownership — the instance which holds the lock at the moment;
213
+
- the `createdAt` is an `Instant.now().getEpochSecond()` when the lock record was created;
214
+
- the `expireAt` is time-to-live attribute according to respective algorithm in DynamoDB.
215
+
216
+
See `DynamoDbLockRegistry` and `DynamoDbLockRepository` Javadocs for more information.
0 commit comments