Caching Architecture (Adobe AEM) – Part 1


If you ever have designed or want to design a platform/site that needs to support some steep non-functional requirements like 1Billion hits, then you have to rever to using cache as a key part of the framework. How cache as we have known it back in the days is not longer just plugging in a library and start writing to it. There is a lot more to it when we talk in context of a Digital Media platform and how you deal with very high loads. This article will talk about principles that will help you design for
– Performance: Caching is a pattern that we employ to increase the overall performance the application by storing the (processed) data in a store that is a) closest to the consumer of the data and b) is accessible quickly
– Scalability: In cases when we need to make the same data-set available to various consumers of the system, caching as a pattern makes it possible for us to scale the systems much better. Caching as we discussed earlier allows us to have processed data which takes away the need to run the same processing time and again which facilitates scalability
– Availability: Building on similar principles as of scalability, caching allows us to put in place data in areas where systems/components can survive outages be it network or other components. While it may lead to surfacing stale data at points, the systems are still available to the end users.

Write Through Cache


I was a young budding developers when I was first introduced to the concept of Cache. My Senior Architect then told me Cache is a component that will magically store data so that future requests of that same data will not be to the Remote Server, and hence it will improve the performance of our […]

Performance Unpredictability


I was hearing a talk from Joshua Bloch on Performance Anxiety and my key observations from the discussion was It has become impossible to estimate performance Performance is becoming more abstract Measure and use statistics with measures Joshua talks about various aspects of the current systems and how these systems today have lead to a […]

Java Collections | Performance Benchmark


Managing list or collection of objects is a very common scenario. In addition, managing that list effectively, that provides the optimum performance is also a very common need. The Java programming language offers many in-built data types for representing and modeling collection of objects. Some of the commonly used data types are: java.lang.ArrayList java.lang.HashSet java.lang.TreeMap […]

Performance | Advanced DataGrid rendering


In one of my projects there were some custom needs where we wanted to display values in cell based on the data passed. This led us to write custom ItemRenderer’s. Considering that we were creating multiple instances of Containers like Canvas, Box with-in led me to thinking how would Advanced Data Grid, respond to this […]

YSlow?!


Nice name 🙂 I came across this Firefox add-on a few days back. My first reaction was “this is kewl”, but as I started to use the same with my Firefox and looked at the various stats for applications all of this started to look “Hot”. For a simple application that I was working on, […]