
Security News
The Changelog Podcast: Practical Steps to Stay Safe on npm
Learn the essential steps every developer should take to stay secure on npm and reduce exposure to supply chain attacks.
@aws-amplify/datastore
Advanced tools
INTERNAL USE ONLY
This package contains the AWS Amplify DataStore category and is intended for internal use only. To integrate Amplify into your app, please use aws-amplify.
Amplify DataStore provides a programming model for leveraging shared and distributed data without writing additional code for offline and online scenarios, which makes working with distributed, cross-user data just as simple as working with local-only data.
| package | version | open issues | closed issues | 
|---|---|---|---|
| @aws-amplify/datastore | 
Please update these docs any time you find something that is incorrect or lacking. In particular, if a line in the docs prompts a question, take a moment to figure out the answer, then update the docs with the necessary detail.
Before you start reading through these docs, take a moment to understand how DataStore works at a high level. Additionally, we recommend first reading through docs.amplify.aws. The purpose of these docs is to dive deep into the codebase itself and understand the inner workings of DataStore for the purpose of contributing. Understanding these docs is not necessary for using DataStore. Lastly, before reading, take a look at the diagrams below.
Note: relationships with dotted lines are explained more in a separate diagram.
flowchart TD
  %% API and Storage
  api[[DS API]]-- observe -->storage{Storage Engine}
  storage-- next -->adapter[[Adapter]]
  adapter-->db[[Local DB]]
  db-->api
  sync[[Sync Engine*]]-.-storage
  sync-.-appSync[(AppSync)]
Note: All green nodes belong to the Sync Engine.
* Merger first checks outbox
** Outbox sends outgoing messages to AppSync
flowchart TD
  subgraph SyncEngine
  index{index.ts}-- observe -->reach[Core reachability]
  subgraph processors
  mp[Mutation Processor]
  sp[Subscription Processor]
  syp[Sync Processor]
  end
  reach--next-->mp[Mutation Processor]
  reach--next-->sp[Subscription Processor]
  reach--next-->syp[Sync Processor]
  subgraph outbox / merger
  outbox[Outbox]
  merger[Merger]
  outbox---merger
  end
  end
  api[DS API]-.->storage
  mp-- 1. observe -->storage{Storage Engine}
  storage-- 2. next -->merger[merger*]-- next -->storage
  sp-- observe -->appsync[(AppSync)]
  appsync-- next -->sp
  syp---appsync
  mp-->outbox[outbox**]
  appsync<--->outbox
  %% styling
  classDef syncEngineClass fill:#8FB,stroke:#333,stroke-width:4px,color:#333;
  class index,mp,sp,syp,merger,outbox syncEngineClass;
amplify-js/packages/datastore/src āāā authModeStrategies ā āāā defaultAuthStraegy.ts ā āāā index.ts ā āāā multiAuthStrategy.ts āāā datastore ā āāā datastore.ts # Entry point for DataStore āāā predicates ā āāā index.ts ā āāā sort.ts āāā ssr āāā storage # Storage Engine ā āāā adapter # Platform-specific Storage Adapters ā āāā getDefaultAdapter ā āāā AsyncStorageAdapter.ts ā āāā AsyncStorageDatabase.ts ā āāā index.ts ā āāā IndexedDBAdapter.ts ā āāā InMemoryStore.native.ts ā āāā InMemoryStore.ts ā āāā storage.ts # Entry point for Storage āāā sync # Sync Engine ā āāā dataStoreReachability ā āāā index.native.ts ā āāā index.ts ā āāā processors # Sync Engine Processors ā āāā mutation.ts ā āāā subscription.ts ā āāā sync.ts ā āāā datastoreConnectivity.ts # Subscribe to reachability monitor ā āāā index.ts # Entry point for Sync Engine ā āāā merger.ts # doc ā āāā outbox.ts # doc
redux-persist is a library that allows you to save the Redux store in persistent storage, such as local storage. It provides offline capabilities but lacks the real-time synchronization and conflict resolution features of @aws-amplify/datastore.
Dexie is a wrapper for IndexedDB, providing a more straightforward API for managing local databases. While it offers offline storage, it does not provide built-in real-time synchronization or integration with cloud services like @aws-amplify/datastore.
PouchDB is an open-source JavaScript database that syncs with CouchDB. It offers offline-first capabilities and real-time synchronization, similar to @aws-amplify/datastore, but requires a CouchDB server for cloud synchronization.
FAQs
AppSyncLocal support for aws-amplify
The npm package @aws-amplify/datastore receives a total of 923,665 weekly downloads. As such, @aws-amplify/datastore popularity was classified as popular.
We found that @aws-amplify/datastore demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago.Ā It has 6 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Learn the essential steps every developer should take to stay secure on npm and reduce exposure to supply chain attacks.

Security News
Experts push back on new claims about AI-driven ransomware, warning that hype and sponsored research are distorting how the threat is understood.

Security News
Ruby's creator Matz assumes control of RubyGems and Bundler repositories while former maintainers agree to step back and transfer all rights to end the dispute.