Performance is an integral part of the Application design and plays a vital role in the success of your product/application. I would like to write a series of performance optimization techniques that help to design the best performant enterprise applications.

I would like to write a series of articles on performance. primarily there will be two parts. Part — 1 talks about the performance considerations at the design/development level and Part — 2 talks about the performance improvisation techniques.

To my understanding, performance optimization must be employed and evaluated at the below-mentioned stages/phases.

  • Application Design Level Considerations
  • Application Development Level Considerations
  • Application Testing and Deployment Considerations

Let’s get started with the performance!

Performance is the most important concern when designing applications. There are so many applications built around the same business domain. The clear winner would be the application that performs at the best and has excellent responsiveness and usability.

Before delving into the performance optimization techniques, let us understand what is caching and why it is a must for any application.

Adopting the cache into the application design helps to achieve the optimal performance of an application.

Below is the cache definition from the Wikipedia

In computing, a cache is a hardware or software component that stores data so that future requests for that data can be served faster; the data stored in a cache might be the result of an earlier computation or a copy of data stored elsewhere. — _ Wikipedia_

In simple words, “Cache is a technique where data will get preprocessed/precomputed and stored somewhere (In-memory data store or distributed store) to provide the faster retrievals.

When a user requests the data, preprocessed data will get served instead of computing and serving the data on-demand. This improves the performance of the application at a larger scale.

Days are gone, where performance optimization of the application will be taken care of once done with the business implementation of the given requirement.

Performance optimization techniques/guidelines must be designed and employed from the project inception phase itself. As part of the ‘Done’ definition of the user story, product owners must include the expectations from the responsiveness as well.

Below are a few policies recommended to be defined at the organization level and ensure these policies are considered as part of the application design/development.

  • Capturing the operational requirements as mandatory for the project and designing your solution around it. You should consider the data or user /customer growth per year/month based on your application domain
  • Employ the APM tools to measure/monitor performance of the applications (Adopting the observability from the inception phase of an application avoids surprises at the end) and define the SLAs
  • Layout the performance practices/principles and manage them as a framework. The framework must be evolving based on the requirements
  • Define the checklist for developers and testers aligned with your SLAs/ principles
  • Define a process that considers load and stress testing as a mandatory for every project.
  • Ensure application is evaluated with large volumes of the data

#performance #optimization #microservice architecture

Performance Considerations for an Enterprise Application
1.30 GEEK