Supported Ash Features

View Source

This document describes which Ash features are supported by AshDynamo and how they map to DynamoDB operations.

Base Operations

CapabilityStatusNotes
:readQuery (with PK) or Scan fallback
:createPutItem with uniqueness check
:updateUpdateItem with existence check
:destroyDeleteItem with existence check
:selectProjectionExpression
:filterKeyCondition + FilterExpression + Runtime fallback

Filter Operators

KeyConditionExpression (partition key + sort key):

Ash OperatorDynamoDBWhere Used
===PK (required), SK
<<SK only
<=<=SK only
>>SK only
>=>=SK only

FilterExpression (non-key attributes, server-side filtering):

Ash OperatorDynamoDB
===
!=<>
<<
<=<=
>>
>=>=
containscontains

Runtime filter fallback (in-memory filtering):

Ash OperatorStatus
in⏳ Runtime filter
is_nil⏳ Runtime filter
or⏳ Runtime filter

Not Implemented

FeatureNotes
:orVia filter expression
:upsertExplicit upsert mode
:sortSort by SK
:limit / :offsetPagination via LastEvaluatedKey/ExclusiveStartKey
:aggregateVia Select: COUNT
Bulk operationsBulk insert/update/delete
GSI/LSI query routingDSL defined
TransactionsVia TransactWriteItems

Warning

Since pagination is not implemented, queries on large datasets will return only the first 1MB of results (DynamoDB's per-request limit).

Not Supported

FeatureNotes
RelationshipsDynamoDB has no native joins