All AEM Communities components and features are built on the social component framework (SCF), which invokes the SocialResourceProvider API to access all user generated content (UGC).
Before a community site is created, the storage resource provider (SRP) must be configured to select an implementation consistent with the underlying topology. The SRP implementations are based on three storage options:
What is important to know about storage of UGC is, when a site is configured to use ASRP or MSRP, the actual UGC is not be stored in AEM’s node store (JCR).
While there may be nodes in JCR which shadow the UGC to provide useful metadata, these nodes are not to be confused with the actual UGC.
See Storage Resource Provider Overview.
When developing custom components, developers should be careful to code independently of the current chosen topology, thus retaining flexibility to move to a new topology in the future.
Methods specific to JCR should avoided.
Methods to use:
Sling API (Sling Resource)
OSGi Events
Methods to avoid:
Different SRPs can have different native query languages. It is recommended to use methods from the com.adobe.cq.social.ugc.api package to invoke the appropriate query language.
For more information, see Search Essentials.