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 — DynamoDBOnlineStore has no plan() support, so feast plan never shows DynamoDB changes · Issue #6660 · feast-dev/feast

DynamoDBOnlineStore has no plan() support, so feast plan never shows DynamoDB changes #6660

New issue
Copy link
New issue
Copy link
Closed
#6661
Closed
DynamoDBOnlineStore has no plan() support, so feast plan never shows DynamoDB changes#6660
#6661
Copy link

Description

@casaar97
casaar97
opened on Jul 29, 2026
Issue body actions

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

feast plan is meant to show what infrastructure would change before you apply it. For DynamoDB, it never shows anything, because DynamoDBOnlineStore doesn't override OnlineStore.plan() at all -- it just inherits the base class's default, which always returns an empty list:

def plan(
    self, config: RepoConfig, desired_registry_proto: RegistryProto
) -> List[InfraObject]:
    return []

Two other online stores (SqliteOnlineStore, MilvusOnlineStore) already override this and report real table changes. DynamoDB is a commonly used online store and doesn't get the same visibility.

Describe the solution you'd like

Add a plan() override to DynamoDBOnlineStore, plus a small DynamoDBTable InfraObject, so feast plan reports one table per feature view the same way SqliteOnlineStore.plan() does for SQLite. The InfraObject proto already has a CustomInfra field reserved exactly for this ("Allows for custom infra objects to be added" -- see protos/feast/core/InfraObject.proto), so this doesn't need any change to the core proto.

This only affects the feast plan reporting path. feast apply's diff-based apply path (FeatureStore._should_use_plan()) is currently gated to the local/sqlite provider only, so DynamoDBOnlineStore.update()/teardown() -- which already perform the real table creation/deletion today -- are completely unaffected either way.

Opened a PR with this fix: #6661. It also builds on the corrected feature-view-list pattern from #6659, which fixed a related bug (sqlite.py's plan() crashing on stream feature views, #6658) that this same code path would otherwise have inherited.

Describe alternatives you've considered

Leaving DynamoDBOnlineStore.plan() as the no-op default and not showing anything in feast plan for DynamoDB users -- current behavior, not desirable.

Additional context

We ran into the gap while evaluating a DynamoDB online store migration and building a custom store with plan() support outside the core repo; figured this specific piece (table-level plan reporting) is generally useful and small enough to contribute back directly.

Activity

  1. ntkathole
    closed this as completedin #6661on Jul 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    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.