// Do not edit directly!
// This file was generated by camel-quarkus-maven-plugin:update-extension-doc-page
= AWS 2 DynamoDB
:page-aliases: extensions/aws2-ddb.adoc
:linkattrs:
:cq-artifact-id: camel-quarkus-aws2-ddb
:cq-native-supported: true
:cq-status: Stable
:cq-status-deprecation: Stable
:cq-description: Store and retrieve data from AWS DynamoDB service or receive messages from AWS DynamoDB Stream using AWS SDK version 2.x.
:cq-deprecated: false
:cq-jvm-since: 1.0.0
:cq-native-since: 1.0.0

[.badges]
[.badge-key]##JVM since##[.badge-supported]##1.0.0## [.badge-key]##Native since##[.badge-supported]##1.0.0##

Store and retrieve data from AWS DynamoDB service or receive messages from AWS DynamoDB Stream using AWS SDK version 2.x.

== What's inside

* xref:{cq-camel-components}::aws2-ddb-component.adoc[AWS DynamoDB component], URI syntax: `aws2-ddb:tableName`
* xref:{cq-camel-components}::aws2-ddbstream-component.adoc[AWS DynamoDB Streams component], URI syntax: `aws2-ddbstream:tableName`

Please refer to the above links for usage and configuration details.

== Maven coordinates

https://code.quarkus.io/?extension-search=camel-quarkus-aws2-ddb[Create a new project with this extension on code.quarkus.io, window="_blank"]

Or add the coordinates to your existing project:

[source,xml]
----
<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-aws2-ddb</artifactId>
</dependency>
----

Check the xref:user-guide/index.adoc[User guide] for more information about writing Camel Quarkus applications.

== SSL in native mode

This extension auto-enables SSL support in native mode. Hence you do not need to add
`quarkus.ssl.native=true` to your `application.properties` yourself. See also
https://quarkus.io/guides/native-and-ssl[Quarkus SSL guide].

== Additional Camel Quarkus configuration

=== Optional integration with Quarkus Amazon DynamoDB

If desired, it is possible to use the Quarkus Amazon DynamoDB Client extension in conjunction with Camel Quarkus AWS2 DDB.
Note that this is fully optional and not at all mandatory.
Follow the https://quarkus.io/guides/amazon-dynamodb#configuring-dynamodb-clients[Quarkus documentation] with some caveats.

1. The Apache client type has to be selected by configuring the following property.
+
[source,properties]
----
quarkus.dynamodb.sync-client.type=apache
----

2. The `DynamoDbClient` has to be "unremovable" in the sense of https://quarkus.io/guides/cdi-reference#remove_unused_beans[Quarkus CDI reference] so that Camel Quarkus is able to look it up at runtime.
You can reach that e.g. by adding a dummy bean injecting `DynamoDbClient`:
+
[source,java]
----
import javax.enterprise.context.ApplicationScoped;
import io.quarkus.arc.Unremovable;
import software.amazon.awssdk.services.dynamodb.DynamoDbClient;

@ApplicationScoped
@Unremovable
class UnremovableDynamoDbClient {
    @Inject
    DynamoDbClient dynamoDB;
}
----

