Image Event Improving Performance in Java Microservices
January 15, 2020

2020 Java Microservices Report

Microservices
Java Application Development

Our 2020 Java Microservices Report* is based on findings from our 2020 Java developer productivity survey. The survey, which collected responses from almost 400 Java development professionals from around the globe, asked developers about the technologies they use, the performance of their applications, and more.

*The 2024 Java Developer Productivity Report is here, and it's full of insights on the state of microservices adoption. Get the latest stats. 

Back to top

2020 Java Microservices Survey Results

In this segment of the report, we’ll look at the results of questions focused on microservices. We asked developers about which Java application architecture they use, what stage they’re at in microservices adoption, the challenges they face with microservices development, microservices code visibility, and their overall satisfaction with existing troubleshooting tools.

Java Application Architecture

Application architecture is one of the most determinant factors for which technologies developers use during development. And, with the majority of respondents now working on microservices-based applications, you can see that effect throughout our survey results. But it’s also important to note that the microservices revolution isn’t all the way complete.

2020 Java Productivity Report - Architecture Choice

While over 50% of respondents use microservices architecture for their main application, 28% are still working within a monolithic architecture, and 10% are working on SOA-based applications. Desktop, mobile, and serverless applications made up the rest, with 4%, 3%, and 1% of survey respondents reporting usage, respectively.

Java Microservices Adoption

In our survey, we found that over 63% of our survey respondents were either working in or actively transitioning to microservices. An additional 21% were actively talking about adopting microservices. Combined, that means 85% of survey respondents are either in microservices, or considering adoption, with only 15% not considering microservices for their application. But maybe the most surprising statistic of our survey is that 28% of respondents were working with fully microservice-based applications.

2020 Java Productivity Report - Microservices Adoption

"We knew going into this survey that most developers would be developing in microservices — but it was surprising to see so many developers reporting fully-transitioned or completed microservices-based applications."

— Curtis Johnson, Senior Solutions Consultant at JRebel

Challenges With Microservices in Java

With the overwhelming adoption of microservices application architecture, there is no shortage of issues for developers. And, with the complex ways in which microservices can interact, it’s no surprise that performance issues were the number one issue for developers.

Our survey asked developers for their biggest challenge in microservices development, and provided the following categories:

  • Setting up the development environment locally.
  • Troubleshooting inter-service functionality issues.
  • Troubleshooting inter-service performance issues.
  • Scaling and monitoring in production.
  • Performance of the distributed system.
  • Other (please specify).
2020 Java Productivity Report - Microservices Challenges Graph

Combined, performance issues impacted developers the most — with over 62% of respondents reporting issues in either troubleshooting inter-service performance (29%) or performance of the overall distributed system (33%).

The next biggest issue was setting up the development environment locally, which garnered a 41% share of respondents. This isn’t a big surprise, as local deployment of distributed applications can be an intricate, difficult, and time intensive process.

Next, 38.85% of respondents found troubleshooting inter-service functionality issues to be their biggest issue. Another big complaint for developers was in scaling and monitoring during production. 29% of respondents listed these issues as their biggest challenge. While other respondents weighed in with individual complaints ranging from integration testing to executive buy-in, there were no statistically-significant complaints.

"Troubleshooting inter-service functionality can be a big time sink for developers. Not many tools can provide the level of insight needed to troubleshoot these issues efficiently."

— Curtis Johnson, Senior Solutions Consultant at JRebel

Java Microservices Visibility

For Java microservices developers, visibility can be a big issue. And, as we saw in the previous section, not knowing how code in one service can affect (or derail) code in another service can drive developers crazy. In this question, we asked respondents to rate their satisfaction with their insight into how their microservices work together as a system.

2020 Java Productivity Report - Satisfaction With Microservices Visibility

Not surprisingly, most respondents weren’t completely satisfied with their level of insight into how their microservices work together as a system. On average, respondents reported satisfaction at six out of ten stars, with only 6% reporting that they were very satisfied  with their visibility into microservices interaction.

Troubleshooting Java Microservices

Our next question focused on how developers felt about the tools available to troubleshoot microservices applications.

2020 Java Productivity Report - Satisfaction With Troubleshooting Microservices Graph

The average developer rated their satisfaction with available tools at six out of ten stars, with only 6% of developers reporting they were very satisfied with available troubleshooting methods. In fact, more developers felt completely unsatisfied than very satisfied, with 7% reporting no satisfaction with available troubleshooting methods.

Back to top

Java Microservices Report Summary

Whether it’s the technologies Java developers use, or the problems they experience during development, microservices undoubtedly impact the Java development process. With microservices as the new architecture status quo for developers, we expect these trends to continue.

Download Full Report

Back to top