Partner – Orkes – NPI EA (cat=Spring)
announcement - icon

Modern software architecture is often broken. Slow delivery leads to missed opportunities, innovation is stalled due to architectural complexities, and engineering resources are exceedingly expensive.

Orkes is the leading workflow orchestration platform built to enable teams to transform the way they develop, connect, and deploy applications, microservices, AI agents, and more.

With Orkes Conductor managed through Orkes Cloud, developers can focus on building mission critical applications without worrying about infrastructure maintenance to meet goals and, simply put, taking new products live faster and reducing total cost of ownership.

Try a 14-Day Free Trial of Orkes Conductor today.

Partner – Orkes – NPI EA (tag=Microservices)
announcement - icon

Modern software architecture is often broken. Slow delivery leads to missed opportunities, innovation is stalled due to architectural complexities, and engineering resources are exceedingly expensive.

Orkes is the leading workflow orchestration platform built to enable teams to transform the way they develop, connect, and deploy applications, microservices, AI agents, and more.

With Orkes Conductor managed through Orkes Cloud, developers can focus on building mission critical applications without worrying about infrastructure maintenance to meet goals and, simply put, taking new products live faster and reducing total cost of ownership.

Try a 14-Day Free Trial of Orkes Conductor today.

eBook – Guide Spring Cloud – NPI EA (cat=Spring Cloud)
announcement - icon

Let's get started with a Microservice Architecture with Spring Cloud:

>> Join Pro and download the eBook

eBook – Mockito – NPI EA (tag = Mockito)
announcement - icon

Mocking is an essential part of unit testing, and the Mockito library makes it easy to write clean and intuitive unit tests for your Java code.

Get started with mocking and improve your application tests using our Mockito guide:

Download the eBook

eBook – Java Concurrency – NPI EA (cat=Java Concurrency)
announcement - icon

Handling concurrency in an application can be a tricky process with many potential pitfalls. A solid grasp of the fundamentals will go a long way to help minimize these issues.

Get started with understanding multi-threaded applications with our Java Concurrency guide:

>> Download the eBook

eBook – Reactive – NPI EA (cat=Reactive)
announcement - icon

Spring 5 added support for reactive programming with the Spring WebFlux module, which has been improved upon ever since. Get started with the Reactor project basics and reactive programming in Spring Boot:

>> Join Pro and download the eBook

eBook – Java Streams – NPI EA (cat=Java Streams)
announcement - icon

Since its introduction in Java 8, the Stream API has become a staple of Java development. The basic operations like iterating, filtering, mapping sequences of elements are deceptively simple to use.

But these can also be overused and fall into some common pitfalls.

To get a better understanding on how Streams work and how to combine them with other language features, check out our guide to Java Streams:

>> Join Pro and download the eBook

eBook – Jackson – NPI EA (cat=Jackson)
announcement - icon

Do JSON right with Jackson

Download the E-book

eBook – HTTP Client – NPI EA (cat=Http Client-Side)
announcement - icon

Get the most out of the Apache HTTP Client

Download the E-book

eBook – Maven – NPI EA (cat = Maven)
announcement - icon

Get Started with Apache Maven:

Download the E-book

eBook – Persistence – NPI EA (cat=Persistence)
announcement - icon

Working on getting your persistence layer right with Spring?

Explore the eBook

eBook – RwS – NPI EA (cat=Spring MVC)
announcement - icon

Building a REST API with Spring?

Download the E-book

Course – LS – NPI EA (cat=Jackson)
announcement - icon

Get started with Spring and Spring Boot, through the Learn Spring course:

>> LEARN SPRING
Course – RWSB – NPI EA (cat=REST)
announcement - icon

Explore Spring Boot 3 and Spring 6 in-depth through building a full REST API with the framework:

>> The New “REST With Spring Boot”

Course – LSS – NPI EA (cat=Spring Security)
announcement - icon

Yes, Spring Security can be complex, from the more advanced functionality within the Core to the deep OAuth support in the framework.

I built the security material as two full courses - Core and OAuth, to get practical with these more complex scenarios. We explore when and how to use each feature and code through it on the backing project.

You can explore the course here:

>> Learn Spring Security

Partner – LambdaTest – NPI EA (cat=Testing)
announcement - icon

Browser testing is essential if you have a website or web applications that users interact with. Manual testing can be very helpful to an extent, but given the multiple browsers available, not to mention versions and operating system, testing everything manually becomes time-consuming and repetitive.

To help automate this process, Selenium is a popular choice for developers, as an open-source tool with a large and active community. What's more, we can further scale our automation testing by running on theLambdaTest cloud-based testing platform.

Read more through our step-by-step tutorial on how to set up Selenium tests with Java and run them on LambdaTest:

>> Automated Browser Testing With Selenium

Partner – Orkes – NPI EA (cat=Java)
announcement - icon

Modern software architecture is often broken. Slow delivery leads to missed opportunities, innovation is stalled due to architectural complexities, and engineering resources are exceedingly expensive.

Orkes is the leading workflow orchestration platform built to enable teams to transform the way they develop, connect, and deploy applications, microservices, AI agents, and more.

With Orkes Conductor managed through Orkes Cloud, developers can focus on building mission critical applications without worrying about infrastructure maintenance to meet goals and, simply put, taking new products live faster and reducing total cost of ownership.

Try a 14-Day Free Trial of Orkes Conductor today.

Course – LSD – NPI EA (tag=Spring Data JPA)
announcement - icon

Spring Data JPA is a great way to handle the complexity of JPA with the powerful simplicity of Spring Boot.

Get started with Spring Data JPA through the guided reference course:

>> CHECK OUT THE COURSE

Partner – Moderne – NPI EA (cat=Spring Boot)
announcement - icon

Refactor Java code safely — and automatically — with OpenRewrite.

Refactoring big codebases by hand is slow, risky, and easy to put off. That’s where OpenRewrite comes in. The open-source framework for large-scale, automated code transformations helps teams modernize safely and consistently.

Each month, the creators and maintainers of OpenRewrite at Moderne run live, hands-on training sessions — one for newcomers and one for experienced users. You’ll see how recipes work, how to apply them across projects, and how to modernize code with confidence.

Join the next session, bring your questions, and learn how to automate the kind of work that usually eats your sprint time.

eBook – Java Concurrency – NPI (cat=Java Concurrency)
announcement - icon

Handling concurrency in an application can be a tricky process with many potential pitfalls. A solid grasp of the fundamentals will go a long way to help minimize these issues.

Get started with understanding multi-threaded applications with our Java Concurrency guide:

>> Download the eBook

Partner – LambdaTest – NPI (cat= Testing)
announcement - icon

Browser testing is essential if you have a website or web applications that users interact with. Manual testing can be very helpful to an extent, but given the multiple browsers available, not to mention versions and operating system, testing everything manually becomes time-consuming and repetitive.

To help automate this process, Selenium is a popular choice for developers, as an open-source tool with a large and active community. What's more, we can further scale our automation testing by running on the LambdaTest cloud-based testing platform.

Read more through our step-by-step tutorial on how to set up Selenium tests with Java and run them on LambdaTest:

>> Automated Browser Testing With Selenium

1. Overview

With JMeter, we can group scenarios and run them in different ways to replicate real-world traffic.

In this tutorial, we’ll learn how and when to replicate real-world scenarios using multiple Thread Groups, as well as how to run them either sequentially or in parallel using a simple test plan.

2. Creating Multiple Thread Groups

The Thread Group is an element of JMeter that controls the number of threads to execute your test.

Each Thread Group in a JMeter Test Plan simulates a particular real-world application scenario.

Most server-based applications usually have more than one scenario, so creating a separate Thread Group mapped with each use case gives us more flexibility to distribute this load correctly during the test.

There are two ways to run Multiple Thread Groups: in sequence or parallel.

3. Running Thread Groups in Sequence

This is mainly useful when we want to execute application scenarios one after the other, especially when there is a dependency between various scenarios.

3.1. Use Case

Let’s say we have an eCommerce application where users can browse products, add specific products (that they like) to their cart and finally initiate checkout, followed by placing the final order.

For such applications, when there is a user journey that we want to mimic, we would like our scripts to follow a particular sequence. For example, our scripts might first execute the browse products, followed by adding products to the cart and finally placing an order.

3.2. Configuration

From the Test Plan, you can achieve this behavior by selecting the checkbox Run Thread Groups consecutively (i.e. one at a time): 

Multiple_Thread_Groups_Sequencially

4. Running Thread Groups in Parallel

This is mainly useful when there is no dependency between various scenarios.

The test actions are performed concurrently, simulating a mixed load on the system under test.

4.1. Use Case

As an example, imagine a website with news categorized into categories like Tech News, Market News, Sports News, etc.

The homepage of this website will always show the latest top news from all different categories.

For such applications, we can still create multiple Thread Groups to have different user load distributions across different pages.

It is, however, possible to execute these Thread Groups at the same time, since they are mutually exclusive.

4.2. Configuration

Test Plans in JMeter are configured by default to run Multiple Thread Groups in parallel, so we don’t need to check Run Thread Groups consecutively.

Parallel

5. Test Case Setup

To try out a Test Plan, we need an API. We can use one exposed by the JSON Placeholder site. This site provides fake APIs for us to experiment with.

We will use two scenarios for our Test Plan

Scenario 1:Reading a particular post.

Scenario 2: Creating a new post.

Since most end users will be interested in reading posts instead of writing a new post we would like to keep them as part of two separate Thread Groups.

6. Adding Thread Groups to the Test Plan

6.1. Creating a Basic Test Plan

We’ll run JMeter to get started.

By default, JMeter creates a default test plan with the name Test Plan. Let’s update this name to My Test Plan:

Test Plan

6.2. Adding Multiple Thread Groups

To create a Thread Group, we’ll right-click on the Test Plan and select Add -> Threads (Users) -> Thread Group:

Add Thread Group

Now we’ll create two Thread Groups, starting with a GET Request Thread Group:

Get Request

This Thread Group will be used to read a particular Post.

We’ve specified some key parameters here:

  • Name: GET Request Thread Group (the name we want to give to this thread group)
  • Number of Threads: 5 (number of virtual users we would mimic as part of the load)
  • Ramp up Period:10 (time needed to bring the configured number of threads up and running)
  • Loop Count:1 (number of times JMeter should execute a particular scenario)

Next, we will create the POST Request Thread Group:

Post request thread group

This Thread Group will be used to create a new post.

Here, we have specified:

  • Name: POST Request Thread Group (the name we want to give to this thread group)
  • Number of Threads: 5 (number of virtual users we would mimic as part of the load).
  • Ramp-up Period: 10 (time needed to bring the configured number of threads up and running for a particular thread group)
  • Loop Count: 1 (number of times JMeter should execute a particular scenario defined in an individual thread group)

6.3. Adding Request

Now, for each Thread Group, we’ll add a new HTTP Request.

To create a Request, we right-click on the Test Group and select Add -> Sampler -> HTTP Request:

add request

Now we create a request under GET Request Thread Group:

read post

Here, we specified:

  • Name: Read Post(the name we want to give to this HTTP Request)
  • Comments: Reading a particular post with ID =1
  • Server Name or IP: my-json-server.typicode.com 
  • HTTP Request Type: GET (HTTP Request Method)
  • Path: /typicode/demo/posts
  • Send Parameters with the request: Here, we have used 1 parameter i.e id (this is needed to retrieve a post with a particular id)

Now we will create another request under POST Request Thread Group:

create post

Here, we have specified:

  • Name: Create Post(the name we want to give to this HTTP Request)
  • Comments: Create a new post with ID =p1 (by publishing it to the server)
  • Server Name or IP: my-json-server.typicode.com 
  • Path: /typicode/demo/posts
  • Send Parameters with the request: Here, we have used two parameters i.e id, and title (these are the attributes needed to create a new Post)

6.4. Adding Summary Report

JMeter gives us the ability to view the results in multiple formats.

To view the results of our execution, we’ll add a View Results in Table Listener.

To create a Request, we right-click on the “Test Plan” and select Add -> Listener -> View Results in Table:

add summary

6.5. Run the Test (In Parallel)

Now we press the Run button (Ctrl + R) on the Toolbar to start the JMeter Performance Test.

The test result is displayed in real time:

view results

This shows that Read Post and Create Post are run one after the other (in parallel) for the number of Threads configured.

This Test result is an outcome of running multiple Thread Groups in parallel. This is the default setting of a Test Plan (with the checkbox unselected):

checkbox unselected

6.6. Run the Test (In Sequence)

Now we select Run Thread Groups consecutively(i.e. one at a time) checkbox from our Test Plan:

checkbox selected

Now we press the Run button (Ctrl + R) again on the Toolbar to start the JMeter Performance Test.

The test result is displayed in real time:

summary in sequence

This shows that all threads mapped to Read Post are executed first, followed by the Create Post threads.

7. Conclusion

In this tutorial, we’ve seen how we can create multiple Thread Groups and can use them to simulate real application user load.

We also learned scenarios around how to configure multiple thread groups either sequentially or in parallel.

Baeldung Pro – NPI EA (cat = Baeldung)
announcement - icon

Baeldung Pro comes with both absolutely No-Ads as well as finally with Dark Mode, for a clean learning experience:

>> Explore a clean Baeldung

Once the early-adopter seats are all used, the price will go up and stay at $33/year.

Partner – Orkes – NPI EA (cat = Spring)
announcement - icon

Modern software architecture is often broken. Slow delivery leads to missed opportunities, innovation is stalled due to architectural complexities, and engineering resources are exceedingly expensive.

Orkes is the leading workflow orchestration platform built to enable teams to transform the way they develop, connect, and deploy applications, microservices, AI agents, and more.

With Orkes Conductor managed through Orkes Cloud, developers can focus on building mission critical applications without worrying about infrastructure maintenance to meet goals and, simply put, taking new products live faster and reducing total cost of ownership.

Try a 14-Day Free Trial of Orkes Conductor today.

Partner – Orkes – NPI EA (tag = Microservices)
announcement - icon

Modern software architecture is often broken. Slow delivery leads to missed opportunities, innovation is stalled due to architectural complexities, and engineering resources are exceedingly expensive.

Orkes is the leading workflow orchestration platform built to enable teams to transform the way they develop, connect, and deploy applications, microservices, AI agents, and more.

With Orkes Conductor managed through Orkes Cloud, developers can focus on building mission critical applications without worrying about infrastructure maintenance to meet goals and, simply put, taking new products live faster and reducing total cost of ownership.

Try a 14-Day Free Trial of Orkes Conductor today.

eBook – HTTP Client – NPI EA (cat=HTTP Client-Side)
announcement - icon

The Apache HTTP Client is a very robust library, suitable for both simple and advanced use cases when testing HTTP endpoints. Check out our guide covering basic request and response handling, as well as security, cookies, timeouts, and more:

>> Download the eBook

eBook – Java Concurrency – NPI EA (cat=Java Concurrency)
announcement - icon

Handling concurrency in an application can be a tricky process with many potential pitfalls. A solid grasp of the fundamentals will go a long way to help minimize these issues.

Get started with understanding multi-threaded applications with our Java Concurrency guide:

>> Download the eBook

eBook – Java Streams – NPI EA (cat=Java Streams)
announcement - icon

Since its introduction in Java 8, the Stream API has become a staple of Java development. The basic operations like iterating, filtering, mapping sequences of elements are deceptively simple to use.

But these can also be overused and fall into some common pitfalls.

To get a better understanding on how Streams work and how to combine them with other language features, check out our guide to Java Streams:

>> Join Pro and download the eBook

eBook – Persistence – NPI EA (cat=Persistence)
announcement - icon

Working on getting your persistence layer right with Spring?

Explore the eBook

Course – LS – NPI EA (cat=REST)

announcement - icon

Get started with Spring Boot and with core Spring, through the Learn Spring course:

>> CHECK OUT THE COURSE

Partner – Moderne – NPI EA (tag=Refactoring)
announcement - icon

Modern Java teams move fast — but codebases don’t always keep up. Frameworks change, dependencies drift, and tech debt builds until it starts to drag on delivery. OpenRewrite was built to fix that: an open-source refactoring engine that automates repetitive code changes while keeping developer intent intact.

The monthly training series, led by the creators and maintainers of OpenRewrite at Moderne, walks through real-world migrations and modernization patterns. Whether you’re new to recipes or ready to write your own, you’ll learn practical ways to refactor safely and at scale.

If you’ve ever wished refactoring felt as natural — and as fast — as writing code, this is a good place to start.

eBook – Java Concurrency – NPI (cat=Java Concurrency)
announcement - icon

Handling concurrency in an application can be a tricky process with many potential pitfalls. A solid grasp of the fundamentals will go a long way to help minimize these issues.

Get started with understanding multi-threaded applications with our Java Concurrency guide:

>> Download the eBook

eBook Jackson – NPI EA – 3 (cat = Jackson)