GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — Add DynamoDB in-place list update support for array-based features · Issue #5687 · feast-dev/feast

Add DynamoDB in-place list update support for array-based features #5687

New issue
Copy link
New issue
Copy link
Closed
#5916
Closed
Add DynamoDB in-place list update support for array-based features#5687
#5916
Copy link
Assignees
anshishrivastava

Description

@devin-ai-integration
devin-ai-integration
bot
opened on Oct 21, 2025
Issue body actions

Is your feature request related to a problem? Please describe.

When working with array-based features that represent sequences of past events per entity (e.g., last N transactions, recent interactions, rolling window of measurements), the current write_to_online_store implementation requires completely replacing the entire feature set for each entity. This is inefficient for use cases where you want to append new events to existing arrays, as it requires:

  1. Reading the current array via get_online_features
  2. Modifying it in application code (append, prepend, or maintain sliding window)
  3. Writing the entire updated array back via write_to_online_store

For DynamoDB specifically, this doesn't leverage the native UpdateItem operation with list_append expressions, which would be more efficient and atomic.

Describe the solution you'd like

Add optional partial update support to the DynamoDB online store that allows in-place list operations. This could be implemented as:

  1. New method in DynamoDB online store: update_online_store or extend write_to_online_store with an update_mode parameter
  2. Support for update expressions: Allow specifying DynamoDB update expressions like:
    • list_append(feature_array, :new_values) - append to end
    • list_append(:new_values, feature_array) - prepend to beginning
    • Custom expressions for more complex operations

Example API:

# Option 1: New method
store.update_online_store(
    feature_view_name="user_events",
    entity_keys=[{"user_id": "123"}],
    updates={
        "recent_transactions": {
            "operation": "list_append",
            "values": [new_transaction_dict]
        }
    }
)

# Option 2: Extended write_to_online_store
store.write_to_online_store(
    feature_view_name="user_events",
    df=new_events_df,
    write_mode="append"  # or "replace" (default), "prepend"
)

Implementation Approach:

Since this is DynamoDB-specific functionality, it could be:

  • Added as an optional method in the DynamoDBOnlineStore class
  • Kept separate from the core online store interface to avoid breaking changes
  • Potentially exposed through a DynamoDB-specific utility or extension

Key changes needed:

  1. Modify sdk/python/feast/infra/online_stores/dynamodb.py to add update operation support
  2. Use boto3's update_item with UpdateExpression instead of put_item
  3. Handle the serialization/deserialization of list values appropriately
  4. Maintain backward compatibility with existing write_to_online_store behavior

Describe alternatives you've considered

  1. Read-Modify-Write pattern (current workaround): Inefficient and not atomic
  2. Maintain arrays upstream: Requires duplicating windowing logic in batch/stream processing
  3. Use OnDemandFeatureView: Doesn't solve the storage efficiency problem
  4. Custom online store implementation: Requires maintaining a fork

Additional context

This feature would be particularly valuable for:

  • Time-series features with sliding windows
  • User interaction histories
  • Event sequences for sequential models
  • Any use case requiring efficient array/list manipulation at the storage layer

Related Slack discussion: https://feastopensource.slack.com/archives/C01M2GYP0UC/p1761052622312959

Technical References:

  • Current DynamoDB implementation: sdk/python/feast/infra/online_stores/dynamodb.py:531 (uses batch_writer with full replacement)
  • Async write path: sdk/python/feast/infra/utils/aws_utils.py:1125 (uses PutRequest)
  • DynamoDB UpdateItem documentation: https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UpdateItem.html

Activity

  1. franciscojavierarceo commented on Oct 22, 2025

    @franciscojavierarceo
    franciscojavierarceo
    on Oct 22, 2025
    Member
    More actions

    Would recommend the write mode option

  2. anshishrivastava commented on Dec 15, 2025

    @anshishrivastava
    anshishrivastava
    on Dec 15, 2025
    Contributor
    More actions

    @franciscojavierarceo - Can you help assigning this to me? I'd like to pick this up

    Reacted by Francisco Javier Arceo
    Reacted by Anshi Shrivastava
  3. franciscojavierarceo
    assigned
    anshishrivastava
    on Dec 16, 2025
  4. anshishrivastava
    added a commit that references this issue on Jan 27, 2026

    feat: add DynamoDB in-place list update support for array-based features

    This issue will close once commit a69361f is merged into the 'master' branch.
    a69361f
  5. anshishrivastava commented on Jan 27, 2026

    @anshishrivastava
    anshishrivastava
    on Jan 27, 2026
    Contributor
    More actions

    @franciscojavierarceo - Took a stab, please have a look and let me know if there's any feedback #5916

    Reacted by Francisco Javier Arceo
  6. anshishrivastava
    added 6 commits that reference this issue on Jan 27, 2026

    feat: add DynamoDB in-place list update support for array-based features

    This issue will close once commit 45b218f is merged into the 'master' branch.
    45b218f

    feat: add DynamoDB in-place list update support for array-based features

    This issue will close once commit 81e929c is merged into the 'master' branch.
    81e929c

    feat: add DynamoDB in-place list update support for array-based features

    This issue will close once commit c3d81ed is merged into the 'master' branch.
    c3d81ed

    feat: add DynamoDB in-place list update support for array-based features

    This issue will close once commit eff9006 is merged into the 'master' branch.
    eff9006

    feat: add DynamoDB in-place list update support for array-based features

    This issue will close once commit 8221600 is merged into the 'master' branch.
    8221600

    feat: add DynamoDB in-place list update support for array-based features

    This issue will close once commit aca9589 is merged into the 'master' branch.
    aca9589
  7. anshishrivastava commented on Feb 3, 2026

    @anshishrivastava
    anshishrivastava
    on Feb 3, 2026
    Contributor
    More actions

    Feel free to merge @franciscojavierarceo - Good to go!

  8. franciscojavierarceo
    closed this as completedin #5916on Feb 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

  • @anshishrivastava
    anshishrivastava

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

    You are visitor 01402503 — GeezerVison does not store the pages you look up.
    Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.