1# Launch Features 2 3See [Prototype 1](prototype/option-1/sync/Prototype.java) for an early 4prototype of the customer-facing APIs. 5 6* A `software.amazon.aws:dynamodb-all` module, including a gateway class 7 that can create generated DynamoDB and enhanced DynamoDB clients. 8* A `software.amazon.awssdk:dynamodb-enhanced` module, including all of 9 the DynamoDB enhanced client classes. 10* Support for the following DynamoDB control-plane resources: tables, 11 global tables, global secondary indexes. 12* Support for the following DynamoDB data-plane operations: get, put, 13 query, scan, delete, update, batchGet, batchWrite, transactGet, 14 transactWrite. 15* Support for object projections. 16* An Item abstraction that replaces the Map<String, AttributeValue> 17 abstraction of the generated client. 18* An ItemAttributeValue abstraction that replaces the AttributeValue 19 abstraction of the generated client. 20* Converters between built-in Java types and ItemAttributeValues. 21* Converters between custom Java beans and ItemAttributeValues. 22* The ability to register custom type converters. 23* Exposure of low-level client metadata, like consumed capacity and 24 metrics. 25 26# Post-Launch Features 27 28* Support for inheritance of custom Java beans. 29* Converters between custom POJOs that do not match the Java bean 30 standard and ItemAttributeValues. 31* Support for the following DynamoDB control-plane resources: backups, 32 continuous backups, limits, TTLs, tags. 33 34# Customer-Requested Changes from 1.11.x 35 36* All built-in Java types should be supported without type converters. 37* There should be just one method of type conversion that can be 38 extended to support any reasonable, foreseeable customer use-case. 39* The high-level library should support immutable object representations 40 from the customer. 41* The high-level library should support object inheritance. 42* The high-level library should support transactional writes. 43* The high-level library should support non-blocking access patterns. 44* The high-level library should expose low-level client metadata, like 45 consumed capacity and metrics. 46 47# FAQ 48 49**Why is dirty data tracking and persistence in the load-modify-save 50scenario not on the feature list?** 51 52From an implementation standpoint, this requires the SDK to track which 53fields have been modified. This complexity is better left to a (future) 54higher level of abstraction, while this library focuses entirely on the 55problem of type conversions. 56 57