Category Archives: Design

Don’t Like Throttling?

Guess what – you are stuck with it. So you can chose to let the underlying system handle it or you can chose to dictate how your traffic should flow.

Do not let the illusion of control dictate the performance. Be the one who needs to control and manage the traffic

Are annotations bad?

We sacrifice the art of writing good and performant code for the short term gains of improving developer productivity.

Annotations can be powerful but only when used to add context and information to the code. But trying to configure your application with them is nothing less that a crime.

Making Thread Dumps Intelligent

When you have to spend hours and hours and mostly on night, weekends and your anniversaries you ask yourself what could I have done better during development to make this all go easy on me.

Thread Dumps are you best friend when a production application (Java) crashes and if you can enable it to tell you something about the application then thats something. Here I have explained how and have included a bunch of Java Code you can reuse.

High availability design

Of course, eventually with many fixes over time you will eradicate a lot of cases that led to failures but it would have taken you so long and the reputation that the brand holds do dear is already damaged. You can chose to design for High Availability or you can chose to be just like Indian Railways – always delayed and always cancelled – a perspective that will i don’t think will ever be fixed no matter what they do.

Thick Clients and CMS

Can a technology like Angular be used in the world of a CMS to solve the process problems where it just takes too long to get HTMLs from Site Developers into CQ’s templates and that too with a degree of quality that we are expected to deliver. This article lays down the foundation of what the challenges are and how it has started to impact our day to day life. The answer is not that simple, but at the looks of it, it seems we are using a technology to solve for a problem which is actually a people or a process problem. You can of course introduce a new component in the mix, but I still believe until people are ready to change, this new component wont do shit.

Caching Architecture (Adobe AEM)

If you ever have designed or want to design a platform/site that needs to support some steep non-functional requirements like 1 Billion hits, then you have to revert to using cache as a key part of the framework. 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, Scale and Availability. This article focuses on Adobe AEM however, the principle discussed are applicable in context of Digital Platform as well.

A POV on Slice (a Adobe CQ Framework)

To sum it up in plain english – Not a lot of rope to hang off of; very little use cases to use and not exciting me as much.

For anything that is enterprise or platform(ish), I won’t go for this. The technical overhead that this framework and what it solves for is not worth the ROI of managing another framework. If I’d come across strongly types content-types, I would consider to use this. The ultimate tie breaker would be how how many of the content-types need to be displayed “as-is”. If all i had to show are several compositions of data (search or what have you) maybe not. But, definitely something to consider

Modeling Content in CQ54

CQ54 is not a a typical RDBMS where I can model a set of relationships in table and soon a pretty picture starts to present itself. CQ54 stores everything in its content repository (CRX) as nodes which follow an entirely different data model i.e. Hierarchical Structure. My experience with hierarchical databases has been with day […]
Read More »

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 […]
Read More »

Setup for Success

Project start is the time when is most critical and single-handedly decide the fate of the project. That is the time when we are preparing ourselves for a journey, and how well prepared decides: When we reach out destination – on time or late In what condition we reach – as expected or all burnt […]
Read More »