User Synchronization vs StorageResourceProvider API
Hi all, just wanted to get everyone’s opinion on User Synchronization[1] (using Sling Content Distribution[2] (SCD)) in AEM 6.2.
Right now in AEM 5.6.1 we’re using some custom Forward Replication/Reverse Replication (FR/RR) for all UGC, including user profile preferences. From our experience thus far, this is probably the worst thing in the world, and we’ve only got about 15-20k active users.
I went ahead and setup User Synchronization in my local dev environment (1 author, 2 publishers) and it’s working out pretty well for any preference modifications made under the rep:User node. I’m concerned when we scale back up to the number of active users we have in PROD right now, if SCD will encounter any of the performance problems that FR/RR had. I can only hope that the answer is no but I don’t know for sure. My guess is that SCD doesn’t have all of the overhead that FR/RR has from the AEM interface using replication agents, workflow instances, leaving behind var/audit logs, etc.
I also wanted to mention that we’re planning to implement MSRP[3], a MongoDB server for the rest of our UGC needs (Comments, Blogs, Notifications, etc) and wanted to get your thoughts on possibly storing the profile preferences there. Would that work? What would it look like? Has anyone tried it or had experience with it? etc.
From my limited understanding of the StorageResourceProvider API[4] (SRP API), reading and writing to MongoDB UGC structure is on a per-component basis, right? So:
/content/my-project/en/home/profile/jcr:content/profile-details-component
...would then become:
/content/usergenerated/asi/mongo/content/my-project/en/home/profile/jcr:content/profile-details-component
...and each individual entry beneath that would have a properties that tie it to a specific user? I don’t imagine there’s a way to actually have it be a shadow node of the user (instead of the component) would there? e.g., Actual Profile Node: /home/users/t/test-user vs. Mongo Shadow Node: /content/usergenerated/asi/mongo/home/users/t/test-user
Thanks so much for any and all input!
- Greg
[1] https://docs.adobe.com/docs/en/aem/6-2/administer/security/security/sync.html
[2] https://github.com/apache/sling/blob/trunk/contrib/extensions/distribution/README.md
[3] https://docs.adobe.com/docs/en/aem/6-2/administer/communities/srp/msrp.html
[4] https://docs.adobe.com/docs/en/aem/6-2/develop/communities/essentials/srp.html