Class SdkAdvancedAsyncClientOption<T>

java.lang.Object
software.amazon.awssdk.utils.AttributeMap.Key<T>
software.amazon.awssdk.core.client.config.ClientOption<T>
software.amazon.awssdk.core.client.config.SdkAdvancedAsyncClientOption<T>
Type Parameters:
T - The type of value associated with the option.

@SdkPublicApi public final class SdkAdvancedAsyncClientOption<T> extends ClientOption<T>
A collection of advanced options that can be configured on an async AWS client via ClientAsyncConfiguration.Builder.advancedOption(SdkAdvancedAsyncClientOption, Object).

These options are usually not required outside of testing or advanced libraries, so most users should not need to configure them.

  • Field Details

    • FUTURE_COMPLETION_EXECUTOR

      public static final SdkAdvancedAsyncClientOption<Executor> FUTURE_COMPLETION_EXECUTOR
      Configure the Executor that should be used to complete the CompletableFuture that is returned by the async service client. By default, this is a dedicated, per-client ThreadPoolExecutor that is managed by the SDK.

      The configured Executor will be invoked by the async HTTP client's I/O threads (e.g., EventLoops), which must be reserved for non-blocking behavior. Blocking an I/O thread can cause severe performance degradation, including across multiple clients, as clients are configured, by default, to share a single I/O thread pool (e.g., EventLoopGroup).

      You should typically only want to customize the future-completion Executor for a few possible reasons:

      1. You want more fine-grained control over the ThreadPoolExecutor used, such as configuring the pool size or sharing a single pool between multiple clients.
      2. You want to add instrumentation (i.e., metrics) around how the Executor is used.
      WARNING

      We strongly discourage using Runnable::run, which executes the future-completion directly from within the I/O thread because it may block the I/O thread and cause deadlock, especially if you are sending another SDK request in the CompletableFuture chain since the SDK may perform blocking calls in some cases.

    • CRT_MEMORY_BUFFER_DISABLED

      public static final SdkAdvancedAsyncClientOption<Boolean> CRT_MEMORY_BUFFER_DISABLED
      Advanced configuration for the native S3CrtAsyncClient, which only applies for file-based multipart uploads. By default, the S3CrtAsyncClient will skip buffering parts in memory for large objects.

      When set to false, the client will not buffer parts for large object, but will buffer parts for smaller objects . When set to true, the client will skip buffering parts even for small objects. Parts for large objects are never buffered.

      Default to false.