Overcast is alpha — behaviour and APIs may change between releases. Pin your version and read the changelog before upgrading.

overcast

DynamoDB operations

Every DynamoDB operation Overcast declares — 21 of 28 implemented — with status, behaviour notes and a link to the AWS API reference for each.

21 of 28 listed operations are implemented. Back to DynamoDB.

Summary

Category✅ Supported❌ Unsupported
Table management71
Item operations6
Query & scan2
Transactions2
Tags3
Streams interoperability1
Global tables6

Endpoints

Table management

OperationStatusNotesAWS Docs
CreateTable✅ SupportedIncludes GSI/LSI definitions; AttributeDefinitions must name exactly the key attributes of the table and its indexes — an unused definition or an undefined key attribute is a ValidationException with AWS’s wording; an omitted BillingMode defaults to PROVISIONED, which requires ProvisionedThroughput on the table and on every GSI, while PAY_PER_REQUEST rejects itdocs
DeleteTable✅ Supporteddocs
DescribeTable✅ Supporteddocs
ListTables✅ SupportedRegion-scoped — lists only tables in the request’s region; Limit (default/max 100) and ExclusiveStartTableName honored; LastEvaluatedTableName echoed when more tables remaindocs
UpdateTable✅ SupportedBillingMode, ProvisionedThroughput, GSI create/delete/update-throughput, AttributeDefinitions, StreamSpecificationdocs
DescribeTimeToLive✅ SupportedReports all four TimeToLiveStatus values — a change is ENABLING/DISABLING until it settles; AttributeName is omitted only once the table has settled on DISABLEDdocs
UpdateTimeToLive✅ SupportedTTL-based item expiry, with the sweeper deleting expired items hourly once the status reaches ENABLED; the change is asynchronous as on AWS, and both members of TimeToLiveSpecification are required (AttributeName 1..255). A second UpdateTimeToLive inside the transition window, re-enabling an ENABLED table (renaming the attribute included) and disabling a DISABLED one are each a ValidationException, so the attribute name only changes by disabling first. Overcast settles in 30 seconds where AWS takes up to an hourdocs
RestoreTableFromBackup❌ Unsupporteddocs

Item operations

OperationStatusNotesAWS Docs
PutItem✅ SupportedIncludes ConditionExpression, ReturnValues (ALL_OLD); key attributes must be present, non-empty and carry their declared AttributeDefinitions type, while non-key attributes stay schemaless; an item over 400 KB by AWS’s size accounting is rejected; records AWS/DynamoDB CloudWatch metrics SuccessfulRequestLatency, ConsumedWriteCapacityUnits, UserErrors/SystemErrors; a reserved word used as a bare attribute name in an expression is rejected, as AWS does — reach it through ExpressionAttributeNamesdocs
GetItem✅ SupportedIncludes ProjectionExpression; a Key must name exactly the key schema’s attributes with their declared types and no empty values; records SuccessfulRequestLatency, ConsumedReadCapacityUnits, UserErrors/SystemErrors; a reserved word used as a bare attribute name in an expression is rejected, as AWS does — reach it through ExpressionAttributeNamesdocs
UpdateItem✅ SupportedSET/REMOVE/ADD/DELETE clauses; all ReturnValues variants; upsert; a Key must name exactly the key schema’s attributes with their declared types and no empty values; an update whose result would exceed 400 KB is rejected; records SuccessfulRequestLatency, ConsumedWriteCapacityUnits, UserErrors/SystemErrors; a reserved word used as a bare attribute name in an expression is rejected, as AWS does — reach it through ExpressionAttributeNamesdocs
DeleteItem✅ SupportedConditionExpression, ReturnValues (ALL_OLD); a Key must name exactly the key schema’s attributes with their declared types and no empty values; records SuccessfulRequestLatency, ConsumedWriteCapacityUnits, UserErrors/SystemErrors; a reserved word used as a bare attribute name in an expression is rejected, as AWS does — reach it through ExpressionAttributeNamesdocs
BatchGetItem✅ SupportedUp to 100 keys across tables — more is a ValidationException; every key is checked against its table’s key schema before any read; records SuccessfulRequestLatency/ConsumedReadCapacityUnits per table toucheddocs
BatchWriteItem✅ SupportedUp to 25 put/delete operations; every item and key is checked against its table’s key schema before any write is applied, and two operations on one item or an item over 400 KB reject the whole batch; records SuccessfulRequestLatency/ConsumedWriteCapacityUnits per table toucheddocs

Query & scan

OperationStatusNotesAWS Docs
Query✅ SupportedKeyConditionExpression (the key schema of the table or index queried, in either order: an equality on its partition key plus at most one condition on its sort key — =, <, <=, >, >=, BETWEEN or begins_with. Parentheses are accepted and change no meaning. A sort-key-only condition, a condition on a non-key attribute, and two conditions on one key are each rejected with AWS’s own message; values type-checked against the declared key types), FilterExpression, Limit (applied before FilterExpression per AWS semantics), ExclusiveStartKey/LastEvaluatedKey pagination, ScanIndexForward, Select=COUNT; ConsistentRead=true on a GSI is rejected as AWS does; records SuccessfulRequestLatency and ConsumedReadCapacityUnits (with GlobalSecondaryIndexName when IndexName names a real GSI); a reserved word used as a bare attribute name in an expression is rejected, as AWS does — reach it through ExpressionAttributeNamesdocs
Scan✅ SupportedFilterExpression, Limit (applied before FilterExpression per AWS semantics), ExclusiveStartKey/LastEvaluatedKey pagination, parallel scan (Segment/TotalSegments, with Segment >= TotalSegments rejected), Select=COUNT; ConsistentRead=true on a GSI is rejected as AWS does; records SuccessfulRequestLatency and ConsumedReadCapacityUnits (with GlobalSecondaryIndexName when IndexName names a real GSI); a reserved word used as a bare attribute name in an expression is rejected, as AWS does — reach it through ExpressionAttributeNamesdocs

Transactions

OperationStatusNotesAWS Docs
TransactGetItems✅ SupportedUp to 100 items across tables; every key is checked against its table’s key schema; records SuccessfulRequestLatency/ConsumedReadCapacityUnits per table (2x weighted, matching AWS’s transactional-read capacity accounting)docs
TransactWriteItems✅ SupportedPut, Update, Delete, ConditionCheck; all-or-nothing; a key-schema mismatch or two operations on one item is a ValidationException raised before anything is applied, not a cancellation reason, while a Put over 400 KB cancels the transaction with a ValidationError reason; records SuccessfulRequestLatency/ConsumedWriteCapacityUnits per table (2x weighted, matching AWS’s transactional-write capacity accounting)docs

Tags

OperationStatusNotesAWS Docs
TagResource✅ SupportedMerges tags; max 50; validates key/value lengthsdocs
ListTagsOfResource✅ SupportedReturns tags as Key/Value arraydocs
UntagResource✅ SupportedRemoves specified keys; idempotent on missing keysdocs

Streams interoperability

OperationStatusNotesAWS Docs
GetShardIterator✅ SupportedTRIM_HORIZON, LATEST, AT/AFTER_SEQUENCE_NUMBERdocs

Global tables

OperationStatusNotesAWS Docs
CreateGlobalTable❌ UnsupportedOvercast emulates a single regiondocs
DescribeGlobalTable❌ UnsupportedOvercast emulates a single regiondocs
DescribeGlobalTableSettings❌ UnsupportedOvercast emulates a single regiondocs
ListGlobalTables❌ UnsupportedOvercast emulates a single regiondocs
UpdateGlobalTable❌ UnsupportedOvercast emulates a single regiondocs
UpdateGlobalTableSettings❌ UnsupportedOvercast emulates a single regiondocs