Skip to content

Simplified Learning Blog

Learning made easy

  • Home
  • Modern Java
  • Architecture & Design
    • Cloud Native
    • System Design
  • AI Engineering
  • Resources
  • About Us
  • Toggle search form

Software Architecture Performance

Posted on March 6, 2023February 27, 2024 By Govind No Comments on Software Architecture Performance

Software Architecture Performance, let’s talk about Performance in Software Architecture of an application. Performance is very critical component of any application as it is one of the major factor to determine the application’s efficiency.

Table of Contents

Toggle
  • What is Performance
    • Workload:
    • Hardware:
  • Software Architecture Performance Problems
    • How to spot a performance problem? How does it look like?
    • Queue Building Reasons
  • Request Processing
    • Serial/Single Request Processing
    • Concurrent Request Processing

In this topic we will cover and learn about what exactly the performance is and how it plays a major role in determining overall application rating as lower the performance low or no value of your system will be.

Look at the below general application overview:

Software Architecture Performance
General Application Flow

In the above diagram, we see that a request is coming from a web browser, and it passes some data like JSON, images or XML to a web application.

Web Application layer transforms those data and convert into objects.

Business Application can be a business logic layer or other application API’s from where we are calculating business logic.

Database layer we are getting data from the DB layer so that we can store or retrieve for processing.

Batch processing is used to process a single or set of batches of data from various other systems into a database.

What is Performance

Performance is a measure of how fast or responsive a system is under a given workload and with given hardware it works on.

Workload:

Workload is the amount of data the application can process over a given period of time. It is one of the major factor in determining the performance. For e.g. on E-commerce sites like Amazon or Flipkart we see surge in traffic on offers/festive seasons.

Hardware:

Hardware is another major factor which determines the performance of an application, as it determines what kind of hardware we are using and what is the capacity of hardware. If the hardware doesn’t have the capacity to handle the number of request, then the application will either slow down or fails with timeout as the processing will take time. So it is equally important that the applications should be optimized and appropriate hardware capacity is equipped with the system.

In short, how fast our system works depends on the above two factors. As if we increase capacity of hardware, then our system performance will increase.

Software Architecture Performance Problems

Let’s talk about the performance problems, how to identify them in the first place.

How to spot a performance problem? How does it look like?

No one wants to have performance issues within their application, So it makes sense to check how and what causes the problem of performance.

Performance problem is the result of some queue. What it means is that because of queuing we face performance problems like network queue, DB queue, OS queues. If these resources are congesting, and it’s building then it causes performance problems that means performance problem is the result of Queue Building in our application.

Queue Building Reasons

1. Inefficient slow processing: if the application has few algorithms which runs slowly that will bring down the performance of application.

2. Serial resource access: Suppose we are executing some processes on single thread and working on that thread works upon serial access, so it will slow down as we need to wait for other works for that thread to complete.

3. Limited resource capacity: Now, let’s assume that we are executing requests in parallel, but our CPU is not efficient (limited CPU resource) to perform that many request at the same time then we will see performance issues as we don’t have the capacity.

These are major 3 reasons which will cause queue building and creates performance problems. Slow processing impacts all the processes of your application, serial resource access needs to wait for operation to complete and limited resources will not allow parallel execution beyond its capacity.

Request Processing

Serial/Single Request Processing

Serial/Single Request Processing
Serial/Single Request Processing

Serial request or single requests are those which are processed one after the other. Once the first request completes, then only second request processing starts.

Concurrent Request Processing

At any given time, we have multiple request present in the system, and they are either being processed Simultaneously or serially. Generally, they are processed Simultaneously.

Concurrent Request Processing
Concurrent Request Processing

In the above diagram, you can clearly see how single and concurrent request processing happens.

Checkout the principles of performance of software here.

Govind

For over 15 years, I have worked as a hands-on Java Architect and Senior Engineer, specializing in building and scaling high-performance, enterprise-level applications. My career has been focused primarily within the FinTech, Telecommunications, or E-commerce sector, where I’ve led teams in designing systems that handle millions of transactions per day.

Checkout my profile here : AUTHOR https://simplifiedlearningblog.com/author/

Related

Architecture & Design

Post navigation

Next Post: Performance Principles of Software Architecture

More Related Articles

Performance Principles of Software Architecture Architecture & Design
Event-Driven Architecture in 2026: Kafka vs. Pulsar vs. Redpanda Architecture & Design
Practical System Design Examples using Spring Boot, Queues, and Caches (2026 Guide) Architecture & Design
System Performance Objective Architecture & Design

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Recent Posts

  • Event-Driven Architecture in 2026: Kafka vs. Pulsar vs. Redpanda
  • Building a RAG Pipeline with Spring AI and pgvector (No Python Required)
  • Technical Debt vs. Feature Velocity: A Framework for Tech Leads (2026)
  • Testing Asynchronous Flows with Awaitility: The End of Flaky Tests
  • Migrating from Java 8/11 to Java 25: The Refactoring Checklist (2026 Edition)

Recent Comments

  1. Govind on Performance Principles of Software Architecture
  2. Gajanan Pise on Performance Principles of Software Architecture
Simplified Learning

Demystifying complex enterprise architecture for senior engineers. Practical guides on Java, Spring Boot, and Cloud Native systems.

Explore

  • Home
  • About Us
  • Author Profile: Govind
  • Contact Us

Legal

  • Privacy Policy
  • Terms and Conditions
  • Disclaimer
© 2026 Simplified Learning Blog. All rights reserved.
We use cookies to improve your experience and personalize ads. By continuing, you agree to our Privacy Policy and use of cookies.

Powered by PressBook Green WordPress theme