mentrena / SyncKit

Automatic CloudKit synchronization
https://mentrena.github.io/SyncKit/
MIT License
507 stars 59 forks source link

Successor project: BigSyncKit #193

Open aehlke opened 2 months ago

aehlke commented 2 months ago

After a couple years of rewriting SyncKit to combine ideas from IceCream and focusing only on RealmSwift (given that CoreData has SwiftData as its successor), I've achieved production stability in my fork named BigSyncKit: https://github.com/lake-of-fire/BigSyncKit

I recommend that this project deprecates itself in favor of this more scalable approach

I haven't caught up on docs and testing but have been successfully using this in production in my apps, with hundreds of thousands of records

I can add more info if there is interest

sskjames commented 3 weeks ago

Hi @aehlke, thanks for all your effort in creating and maintaining BigSyncKit. We are currently using Realm + SyncKit now and would like to switch to BigSyncKit. However, you mentioned that CKReference is not supported which is our only point of concern. We are using Realm object references quite heavily. Currently SyncKit handles this via CKReference. We already ran into the CKReference cascade delete issue and have disabled cascade delete in our fork of SyncKit. Do we need to make any changes on our end to adapt BigSyncKit? Kindly clarify.

aehlke commented 3 weeks ago

Sorry I don't recall the reasoning behind CKReference. If you look at IceCream you may find why. If I remember correctly it's something with limits on how many you can have which don't scale to all applications, or perhaps it was an integrity issue (maintaining foreign key style relations with eventual consistency can be hard). You could try to add CKReference support into BigSyncKit as an optional behavior if you can't give it up