Merlin Synchronizer
The synchronizer
is responsible for pulling data from a Merlin ledger in GCS via the Gatsby Cloud Ledger API. It can sync all data in a ledger or just the data since the last time it synchronized.
It synchronizes Merlin ledger redux actions for a specific Gatsby Cloud site ID and a specific Gatsby site path local to the process calling synchronize
. It handles its own caching via a provided cache function with get
and set
methods. It returns a promise that's resolved when all actions are synced or its determined that the synchronizer can be invoked in any follower when they need to sync data from Cloud.
Usage
import { synchronize } from "@gatsby-cloud-pkg/merlin-synchronizer"
const { ledgerExists } = await synchronize({
siteId,
gatsbySitePath,
cache,
handleAction: (action) => {
},
})
import { computeSourcingConfigurationId } from "@gatsby-cloud-pkg/merlin-synchronizer"
const sourcingConfigurationId = await computeSourcingConfigurationId(
pathToGatsbySite
)
Development
You must have previously written a ledger to disk. You can do this by running yarn:start:local
in services/cloud-sourcerer
in the mansion
repo. You may need to set environment variables for the site you are using to generate the ledger.
- Run
dev-monolith
with yarn:start:local
in services/dev-monolith
- Create an
env
file with the SITE_ID
you used to generate the ledger and the correct port for the API, e.g. GATSBY_CLOUD_DATALAYER=http://localhost:8201/get-ledger-entries
if not using 8083
- Run
yarn run:local
in the merlin-synchronizer
directory.