Expand my Community achievements bar.

SOLVED

Performance consideration for user generated content

Avatar

Level 2

Hello community, 

 

We are designing a solution where users will bookmark/save articles, data will therefore be generated by end-user and requested on each page(article) load.

 

We are considering different solutions but taking into consideration:

- Performance on page load:  (Request data (isBookmarked/isSaved) on page load or asynchronously) 

- Caching, Dispatcher and CDN: We are looking at Sling Dynamic Include but sill would like to cache this info if possible to reduce traffic

 

We are not utilizing AEM communities as it adds an unnecessary overhead in infrastructure for what we need here. 

 

Would appreciate to hear your experiences and the different solutions implemented out there with pros and cons. 

1 Accepted Solution

Avatar

Correct answer by
Community Advisor

@hadriz 

Few questions to consider initially.

How many users (max) can use this functionality?

How many article pages will be there? (consider the growth)

 

 

Consider following:

- Provide a button/icon on all pages for user to bookmark or unbookmark. A servlet can be used for that.

- Manage ugc storage in Mongo/Solr set up (Specially if there are other ugc items that might be generated.) Each bookmark  can be an entry or just save an entry for each user which contains a list (may be tricky if sorting).

- Manage ugc storage in jcr. If there are going to be large number of nodes (millions eventually say after couple or more years) ugc sync for all publishers may be a problem later. In this approach utilizing cache can be helpful. But the path has to be unique per user. This can create lot of files to be cached.

 

Also consider managing bookmarked pages that will be deactivated and how those can be cleared from user's bookmarked list. This may lead to unnecessary 404s

View solution in original post

1 Reply

Avatar

Correct answer by
Community Advisor

@hadriz 

Few questions to consider initially.

How many users (max) can use this functionality?

How many article pages will be there? (consider the growth)

 

 

Consider following:

- Provide a button/icon on all pages for user to bookmark or unbookmark. A servlet can be used for that.

- Manage ugc storage in Mongo/Solr set up (Specially if there are other ugc items that might be generated.) Each bookmark  can be an entry or just save an entry for each user which contains a list (may be tricky if sorting).

- Manage ugc storage in jcr. If there are going to be large number of nodes (millions eventually say after couple or more years) ugc sync for all publishers may be a problem later. In this approach utilizing cache can be helpful. But the path has to be unique per user. This can create lot of files to be cached.

 

Also consider managing bookmarked pages that will be deactivated and how those can be cleared from user's bookmarked list. This may lead to unnecessary 404s