Advertisements

Category Archives: Architecture

React and Angular do not fit everywhere

Last few years have been fascinating with several front-end frameworks coming up. I am not going to compare them; neither am I going to talk about The Good or The Bad on them. The buzz words, the new technologies are so shiny that almost everyone I speak to today wants to work on the new stuff. And they also tend to believe that you can solve everything by just writing a front-end application, make some API calls and it’s done. The focus of this post will be that React, or Angular or Vue.js or anything similar is not one size fit all frameworks and Servers Side Code still has a place in this world.

Advertisements

The false security of Notifications

it’s like jumping into my car and every time i see the dashboard every light in there is brightly lighted up – to the point that one day i stop caring. eventually, someday something will fail – i just hope it’s not the day when I am driving to someplace in an emergency.

Most of our Notifications and alerting strategy is more than a brightly lit Dashboard. We cant any more tell what’s gonna fail when.

It’s a false hope we live with.

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.

AEM Development Workflow – Part 1 (introduction)

What I want to do here is to compare 3 workflows and see what each one has to offer and what’s the best possible way to remove this inefficiency or improve productivity.
1. Follow the current set of technologies JSP-Java but change the way of working aka different set of tools, trainings and processes
2. Use Sightly ~ the new templating language pushed by AEM
3. Use other templating languages like handlebars or angular which are more platform agnostic and goes beyond just CMS and AEM (old school application development also fits)

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) – Part 1

Cache (as defined by Wikipedia) is a component that transparently stores data such that future requests for data can be faster. I hereby presume that you understand cache as a component and any architectural patterns around caching and thereby with this presumption I will not go into depth of caching in this article. This article will cover some of the very basics of fundamentals of caching (wherever relevant) and then will take a deep dive into the point-of-view on the caching architecture with respect a Content Management Plan in context to Adobe’s AEM implementation.

 

Problem Statement

Principles for high performance and high availability don’t change but for conversation sakes lets assume we have a website where we have to meet the following needs.

  • 1 Billion hits on a weekend (hit is defined by a call to the resource and includes static resources like CSS, JS, Images, etc.)
  • 700 million hits in a day
  • 7.2 million page views in a day
  • 2.2 million page views in an hour
  • 80K hits in a second
  • 40K page views in a minute
  • 612 page views in a second
  • 24×7 site availability
  • 99.99% uptime
  • Content availability to consumers in under 5 minutes from the time editors publish content

While the data looks steep┬áthe use case is not uncommon one. In current world where everyone is moving to devices, and digital there will be cases when brands are running campaigns. When those campaigns are running there will be needs for support such steep loads. These loads don’t stay for long but when then come they come fast, they come thick and we will have to support them.

For the record, this is not some random theory I am writing, I have had the opportunity of being on a project (I cant name) where we supported similar number.

The use case I picked here is of a Digital Media Platform where we have a large portion of the content is static, but the principles I am going to talk here will apply to any other platform or application.