Do not use AEM as a proxy for backend calls
Jorg Hoh | Things on Content Management System
by Jörg
3w ago
Since I am working with AEM CS customers, I came a few time across the architecture pattern, that requests made to a site to passed all the way through to the AEM instance (bypassing all caches), and then AEM does an outbound request to a backend system (for example a PIM system or other API service, sometimes public, sometimes via VPN), collects the result and sends back the response. This architectural pattern is problematic in a few ways: AEM handles requests with a threadpool, which has an upper limit of requests it will handle (by default 200). That means that at any time the number of s ..read more
Visit website
My view on manual cache flushing
Jorg Hoh | Things on Content Management System
by Jörg
1M ago
I read the following statement by Samuel Fawaz on LinkedIn regarding the recent announcement of the self-service feature to get the API key for CDN purge for AEM as a Cloud Service: […] ????????? ??? ??? ????? ?? ???? ?????? ?? ??? ??? ???? ?? ????? ??? ??????????. ??? ??? ???. I fully agree, that a self-service for this feature was overdue. But I always wonder why an explicit cache flush (both for CDN and dispatcher) is necessary at all. The caching rules are very simple, as the rules for the AEM as a Cloud Service CDN are all based on the TTL (time-to-live) information sent from AEM or the ..read more
Visit website
Adopting AEM as a Cloud Service: Shifting from Code-Centric Approaches
Jorg Hoh | Things on Content Management System
by Jörg
1M ago
The first CQ5 version I worked with was CQ 5.2.0 in late 2009; and since then a lot changed. I could list a lot of technical changes and details, but that’s not the most interesting part. I want to propose this hypothesis as the most important change: CQ5 was a framework which you had to customize to get value out of it. Starting with AEM 6.x more and more out-of-the-box features were added which can be used directly. In AEM as a Cloud Service most new features are directly usable, not requiring (or even allowing) customization. And as corollary: The older your code base the more customizati ..read more
Visit website
AEM CS & Mongo exceptions
Jorg Hoh | Things on Content Management System
by Jörg
3M ago
If you are an avid log checker on your AEM CS environments you might have come across messages like this in your authoring logs: 02.04.2024 13:37:42:1234 INFO [cluster-ClusterId{value='6628de4fc6c9efa', description='MongoConnection for Oak DocumentMK'}-cmp57428e1324330cluster-shard-00-02.2rgq1.mongodb.net:27017] org.mongodb.driver.cluster Exception in monitor thread while connecting to server cmp57428e1324330cluster-shard-00-02.2rgq1.mongodb.net:27017 com.mongodb.MongoSocketException: cmp57428e1324330cluster-shard-00-02.2rgq1.mongodb.net at com.mongodb.ServerAddress.getSocketAddresses(ServerA ..read more
Visit website
Performance test modelling (part 5)
Jorg Hoh | Things on Content Management System
by Jörg
5M ago
This is part 5 and the final post of the blog post series about performance test modelling; see part 1 for an overview and the links to all articles of this series. In the previous post I discussed the impact of the system which we test, how the modelling of the test and the test content will influence the result of the performance test, and how you implement the most basic scenario of the performance tests. In this blog post I want to discuss the predicted result of a performance test and the actual outcome of it, and what you can do when these do not match (actually they rarely do on the fir ..read more
Visit website
Performance test modelling (part 4)
Jorg Hoh | Things on Content Management System
by Jörg
5M ago
This the 4th post of the blog post series about performance test modelling; see part 1 for an overview and the links to all articles of this series. In the parts 2 and 3 I outlined relevant aspects when it comes to model your performance tests: The modelling of the expected load, often as expressed as “concurrent users”. The realistic modelling of the system where we want to conduct the performance tests, mostly regarding the relevant content and data. In this blog post I want show how you deduce from that data, what specific scenarios you should cover by a performance tests. Because there i ..read more
Visit website
CDN and dispatcher – 2 complementary caching layers
Jorg Hoh | Things on Content Management System
by Jörg
5M ago
I sometimes hear the question how to implement cache invalidation for the CDN. Or the question is why AEM CS still operates with a dispatcher layer when it now has a more powerful CDN in front of it. The questions are very different, but the answer is in both cases: the CDN is no replacement for the dispatcher, and the dispatcher does not replace the CDN. They serve different purposes, and they combination of these two can be a really good package. Let me explain this. The dispatcher is very traditional cache. It’s fronting the AEM systems and the cache status is actively maintained by cache i ..read more
Visit website
Performance tests modelling (part 2)
Jorg Hoh | Things on Content Management System
by Jörg
6M ago
This is is the second blog post in the series about performance test modelling. You can find the overview over this series and links to all its articles in the post “Performance tests modelling (part 1)“. In this blog post I want to cover the aspect of “concurrent users”, what it means in the context of a performance test and why its important to clearly understand its impact. Concurrent users is an often used measure to indicate the the load put to a system, expressed by usage in a definition, how many users are concurrently using that system. And for that reason many performance tests provid ..read more
Visit website
Performance tests modelling (part 1)
Jorg Hoh | Things on Content Management System
by Jörg
6M ago
In my last blog post about performance test I outlined best practices about building and executing a performance test with AEM as a Cloud Service. But intentionally I left out a huge aspect of the topic: How should your test look like? What is a realistic test? And what can a test result tell you about the behavior of your production environment? These are hard question, and I often find that these questions are not asked. Or people are not aware that these questions should be asked. This is the first post in a series of blog posts, in which I want to dive a bit deeper into performance testi ..read more
Visit website
Sling Model Exporter & exposing ResourceResolver information
Jorg Hoh | Things on Content Management System
by Jörg
7M ago
Welcome to 2024. I will start this new year with a small advice regarding Sling Models, which I hope you can implement very easy on your side. The Sling Model Exporter is based on the Jackson framework, and it can serialize an object graph, with the root being the requested Sling Model. For that it recursively serializes all public & protected members and return values of all simple getters. Properly modeled this works quite well, but small errors can have large consequences. While missing data is often quite obvious (if the JSON powers an SPA, you will find it not properly working), too m ..read more
Visit website

Follow Jorg Hoh | Things on Content Management System on FeedSpot

Continue with Google
Continue with Apple
OR