Skip to content

High Performance
Digital Applications

K Sriram Kumar

VP, Technology and Performance Engineering
7 min Read

High Performance Digital Applications

Doing it the Right way

Sustainable success in digital applications is all about building applications with scalable / reliable application performance. The key to achieving this success is by treating application performance as one of the core design pillars of the digital application right from the inception phase of the project to the post production phase. Application performance, usability, and response time metrics should be part of the discussion at every stage of the project and should never be left as an afterthought reserved for the post-production phase. A set of key performance focused tasks implemented during the four phases of the project will go a long way in building an application that is scalable and robust at all times. These four phases are:

"It is critical to treat application performance as one of the core design pillars of the digital application to ensure scalability and robustness at all times"

Concept to Inception Phase

  • Process

    • Establish broad expectations on response times for key operations at this stage of the project.
    • Create awareness / constraints on network speeds available for the targeted audience.
    • Create awareness / constraints of the types of devices typically used by an end customer.
    • Involve backend system teams in decisions related to integration methodology and capacity requirements / impact of the digital workload on their systems.

  • Design Principles

    • Build a timeline graph of response time expectations for the overall journey of a transaction across all backend systems. The overall response time in most scenarios is a sum total of the response times contributed by every system in the journey. This helps to better visualize the timeline graph.
    • Identify and document systems that could contribute to maximum response time and evolve enterprise integration patterns suitable for systems having limitations.
    • Ideate building reconciliation mechanisms for identifying and rectifying failures the have financial impact.
    • Avoid force fit of non-native application functionality into digital applications since there might not be other systems in the current landscape catering to that functionality. Classic use cases are digital application layers doubling as custom built mini document management systems / complex process orchestration system / custom enterprise service bus.

Iteration / Construction Phase

  • Process

    • Establish specific response time expectations on every screen / journey.
    • Test early on, actual networks and actual devices used by end customers.
    • Involve customer / customer representatives to test early and include usability / response time.
    • Plan for end to end performance testing and involve all systems in the scope.

  • Design Principles

    • Optimize design / wire frames for the set expectations on response times and networks.
    • Consider constraints of backend systems on capacity / load and consider isolating / decoupling tight integration between systems to avoid cascading effects.
    • Design for easy access of essential data and avoid risk of complex access paths / bloating, dumping, and filling of non-critical data in the database.
    • Design decisions to handle backend timeouts / failures gracefully.
    • Focus on design decisions such as what, where, and how to store data and how long it should be retained.
    • Build / ideate how response times are proactively monitored / reported during production.

  • People

    • Invest in people with the right skills for setting up / managing / monitoring infrastructure.
    • Build expertise on application performance monitoring tools to monitor /notify / act on performance metrics.

Release Phase

  • Process

    • Execute end-to-end performance test with all systems involved. Start with small tests and increment the workload and coverage rather than trying to cover all functionalities at once.
    • Identify and tune all components for key operations / functionality in the system.
    • Leverage application performance management tools to review key performance metrics across all systems
    • Execute soak-test / backend stress test with anticipated future workload during production.
    • Involve actual customers / customer representatives to be a part of the performance test to get their feedback on usability during load (avoid relying only on metrics reported by user simulation tools)
    • Execute end-to-end performance test in every new release of the application.

  • Design Principles

    • Simulate tests of model failures of every component in the architecture to ensure that there are no single points of failure.
    • Review usability of logs and logging infrastructure to troubleshoot issues
    • Automate identifying / reporting of deviations on response times / failures.
    • Build dashboards on system usage across infrastructure and application metrics.

  • People

    • Dry run to identify patterns of normal behaviour and patterns when system is under load. These tests help people learn from failures and help learn troubleshooting.

Production Phase

  • Process

    • Collect and baseline application usage / performance metrics during peak workloads of the week / month / year.
    • Review usage metrics and response times reported by monitoring tools and identify any deviation observed.
    • Periodically review key operating parameters across infrastructure and applications.

  • Design Principles

    • Automate and minimize human intervention of repeated operations.

  • People

    • Periodically review and identify bottlenecks at various layers (infrastructure / application / integration) and brainstorm with all teams involved to mitigate identified bottlenecks before they become a show stopper.

Conclusion

The recipe for building successful digital applications depends on choosing the right partner the has a rich experience in building high performance digital applications and following the right set of time tested operating principles. The rule of thumb always is – Start small and iteratively build robust and scalable digital applications.