FAQ
Common questions about how Ensembles works, licensing, and migration.
Technical
How does Ensembles work?
Ensembles monitors all saves made to your persistent store and packages them as change sets. These change sets are uploaded to whichever cloud backend you choose. Other devices download and import those change sets into their own local stores. No server ever interprets the data — it just moves files.
How can you sync without a server?
Ensembles does use online storage — but not a server that understands your data model. Your data is stored as opaque files in a storage service your customers already have (iCloud, Dropbox, Google Drive, etc.). No server indexes, queries, or mediates your data. This is a local-first architecture for decentralized systems, and we’ve been refining it since 2013.
What happens when two devices edit the same record?
Ensembles keeps enough metadata to determine the ordering of changes and whether they occurred concurrently. It then ensures all devices apply changes deterministically, so they end up with the same data. If you need to adjust the merge, delegate methods let you inspect and repair the result before it’s committed.
Does my data touch your servers?
No. Data moves directly between devices and the cloud storage your customers choose. Nothing passes through our servers or any intermediary. We never see, store, or process your customers’ data.
What platforms are supported?
iOS 16+, macOS 13+, tvOS 16+, and watchOS 9+. Ensembles is written in Swift 6 and distributed as a Swift Package.
Do I need to change my Core Data model?
Not generally. The main addition is a global identifier for each entity — typically a UUID attribute — if you don’t already have one. Ensembles uses these to deduplicate objects across devices. Beyond that, no subclassing or model changes are required.
Can I add Ensembles to an existing app that already has data?
Yes. When you attach a persistent store for the first time, Ensembles automatically imports the existing contents into its event log. No manual migration is needed.
What if my app loses its network connection?
Your app keeps working normally. Ensembles captures local changes regardless of connectivity. When the network returns, the next sync uploads everything that was saved offline and downloads any remote changes.
What happens if I change my data model?
Keep all your shipped model versions bundled in the app. Ensembles checks each incoming change set against the model versions it knows. If it recognizes the version, it imports the changes. If not, the change set is held aside. This means that when you update your model, customers on the old app version will stop receiving new changes — but no data is lost. As soon as they upgrade, all pending changes sync automatically.
Licensing
Do I need a subscription to use CloudKit sync?
No. CloudKit, local file, and in-memory backends are completely free with no license required. Only third-party cloud backends (Dropbox, Google Drive, OneDrive, etc.), encryption, and peer-to-peer sync require a subscription.
What happens if I cancel my subscription?
Shipped apps keep syncing. Your subscription covers all SDK versions released during your subscription period, and those versions are yours to use forever. You just won’t be able to build with newer SDK versions until you renew. Renew any time to pick up where you left off.
Can I ship a production app on a free trial?
No. The free trial is for evaluation only. When the trial expires, paid backends will stop connecting. Subscribe before shipping to the App Store.
How long is the free trial?
The free trial lasts one month. During that time you can evaluate all paid backends. When the trial expires, paid backends will stop connecting. Subscribe before shipping to the App Store.
Does the subscription cover all my apps?
Yes. One subscription covers unlimited apps from a single developer account. There are no per-app fees.
Can I use multiple backends in one app?
Yes. A single subscription covers all paid backends, and you can use as many as you like in the same app. For example, you could offer customers a choice between Google Drive, Dropbox, and WebDAV.
Migration
Can I use Ensembles 3 if I was using Ensembles 2?
Yes. Ensembles 3 is fully backward compatible with Ensembles 2 cloud data. Existing Ensembles 2 apps can migrate to Ensembles 3 without a data reset. A compatibility mode is available to keep exports parseable by E2 peers while customers transition.
Can my Ensembles 2 license be used for Ensembles 3?
Ensembles 3 uses a new licensing system and requires a new subscription. If you have an existing Ensembles 2 license, contact us and we'll arrange it.