Sling models performance (part 3)
Jorg Hoh | Things on Content Management System
by Jörg
2M ago
In the first and second part of this series “Sling Models performance” I covered aspects which can degrade the performance of your Sling models, be it by not specifying the correct injector or by re-using complex models for very simple cases (by complex PostConstruct models). And there is another aspect when it comes to performance degradation, and it starts with a very cool convenience function. Because Sling Models can create a whole tree of objects. Imagine this code as part of a Sling Model: @ChildResource AnotherModel child; It will adapt the child-resource named “child” into the class ..read more
Visit website
The most expensive HTTP request
Jorg Hoh | Things on Content Management System
by Jörg
3M ago
TL;DR: When you do a performance test for your application, also test a situation where you just fire large number of invalid requests; because you need to know if your error-handling is good enough to withstand this often unplanned load. In my opinion the most expensive HTTP requests are the ones which return with a 404. Because they don’t bring any value, are not as easily cacheable as others and are very easily to generate. If you are looking into AEM logs, you will often find requests from random parties which fire a lot of requests, obviously trying to find vulnerable software. But in AEM ..read more
Visit website
AEM article review December 2022
Jorg Hoh | Things on Content Management System
by Jörg
3M ago
I am doing this blog now for quite some time (the first article in this blog dates back to December 2008! That was the time of CQ 5.0! OMG), and of course I am not the only one writing on AEM. Actually the number of articles which are produced every months is quite large, but I am often a bit disappointed because many just reproduce some very basic aspects of AEM, which can be found at many places. But the amount of new content which describe aspects which have barely been covered by other blog posts or the official product documentation is small. For myself I try to focus on such topics, offe ..read more
Visit website
Sling Models performance, part 2
Jorg Hoh | Things on Content Management System
by Jörg
3M ago
In the last blog post I demonstrated the impact of the correct type of annotations on performance of Sling Models. But there is another aspect of Sling Models, which should not be underestimated. And that’s the impact of the method which is annotated with @PostConstruct. If you are not interested in the details, just skip to the conclusion at the bottom of this article. To illustrate this aspect, let me give you an example. Assume that you have a navigation (or list component) in which you want to display only pages of the type “product pages” which are specifically marked to be displayed. Bec ..read more
Visit website
Sling Model Performance
Jorg Hoh | Things on Content Management System
by Jörg
4M ago
In my daily job as an SRE for AEM as a Cloud Service I often have to deal with performance questions, especially in the context of migrations of customer applications. Applications sometimes perform differently on AEM CS than they did on AEM 6.x, and a part of my job is to look into these cases. This often leads to interesting deep dives and learnings; you might have seen this reflected in the postings of this blog The problem this time was a tight loop like this: for (Resource child: resource.getChildren()) { SlingModel model = child.adaptTo(SlingModel.class); if (model != null && mo ..read more
Visit website
Limits of dispatcher caching with AEM as a Cloud Service
Jörg Hoh Blog
by Jörg
5M ago
In the last blog post I proposed 5 rules for Caching with AEM, how you should design your caching strategy. Today I want to show another aspect of rule 1: Prefer caching at the CDN over caching at the dispatcher. I already explained that the CDN is always located closer to the consumer, so the latency is lower and the experience will be better. But when we limit the scope to AEM as a Cloud Service, the situation gets a bit complicated, because the dispatcher is not able to cache files for more than 24 hours. This is caused by a few architectural decisions done for AEM as a Cloud Service: The ..read more
Visit website
Dispatcher, CDN and Caching
Jörg Hoh Blog
by Jörg
5M ago
In today’s web performance discussions, there is a lot of focus on the browser as the most important. Google defines Web Core Vitals, and there are many other aspects which are important to have a fast site. Plus then SEO … While many developers focus on these, I see that many sites often neglect the importance of proper caching. While many of these sites already use a CDN (in AEM CS a CDN is part of any offering), they often do not use the CDN in an optimal way; this can result in slow pages (because of the network latency) and also unnecessary load on the backend systems. In this blog post I ..read more
Visit website
What’s the maximum size of a node in JCR/AEM?
Jörg Hoh Blog
by Jörg
9M ago
An interesting question which comes up every now and then is: “Is there a limit how large a JCR node can get?”.  And as always in IT, the answer is not that simple. In this post I will answer that question and also outline why this limit is hardly a constraint in AEM development. Also I will show ways how you can design your application so that this limit is not a problem at all. (Allow me a personal note here: For me the most interesting part of that question is the motivation behind it. When this question I asked I typically have the impression that the folks know that they are a bit ..read more
Visit website
Sling Scheduled Jobs vs Sling Scheduler
Jörg Hoh Blog
by Jörg
10M ago
Apache Sling and AEM provide 2 different approaches to start processes at a given time or in a given interval. It is not always trivial to make the right decision between these two, and I have seen a few cases of misuse already. Let’s dive into this topic and I will outline in what situation to use the Scheduler and when to use Scheduled Jobs. Let me outline the differences between these using using a simple table:   Sling Scheduled Job Sling Scheduler Timing is persisted across restarts Yes No Start a job via OSGI annotations No yes Start a job via API Yes Yes Trigger on every ..read more
Visit website
How to analyze “Authentication support missing”
Things on a content management system
by Jörg
1y ago
Errors and problems in running software manifest often in very interesting and non-obvious cases. A problem in location A manifests itself only with an unrelated error message in a different location B. We also have one example of such a situation in AEM, and that’s the famous “Authentication support missing” error message.  I see often the question “I got this error message; what should I do now?”, and so I decided: It’s time to write a blog post about it. Here you are. “Authentication support missing” is actually even correct: There is no authentication module available, so you cannot a ..read more
Visit website

Follow Jorg Hoh | Things on Content Management System on Feedspot

Continue with Google
Continue with Apple
OR