
Microservices in Java: Survey Highlights
More developers are moving from monolith to microservices architecture to support increasingly complex application needs. But, despite widespread adoption as an application architecture, real-world use of microservices in Java environments remains somewhat a mystery. This Java Microservices Survey aims to shed light on this widely implemented application architecture, and to explore what microservices look like in Java applications.
About the Java Microservices Survey
In May 2019, the JRebel team at Perforce conducted a Java Microservices Survey. The survey aimed to discover how Java users have adopted microservices, with the goal of better understanding how microservices are being adopted and used within the Java ecosystem.
A total of 69 respondents participated in the survey, 49 of which were using microservices in their main project and Java as their main language. This group of 49 people make up the findings below. The people surveyed were mostly not users of our products, so product biases should be avoided. The sample size is not huge and the results have a considerable margin of error, if formally calculated. However, we believe this serves as a valuable temperature check of this hot and rapidly-evolving technology segment.
Java Microservices Framework Survey
We asked respondents to select one from a list of frameworks they were using for microservices, with an option to add a free-text answer. A significant number (86%) indicated Spring Boot as their framework of choice. This response did not come as a surprise, as Spring Boot is the fastest-growing Java framework on the market with built-in microservices support.
Docker Adoption in Java Microservices
Another expected finding is that Docker has a large footprint among microservices users. 61% of developers involved in this survey reported using Docker containers, with 27% not using containers at all. The remaining 12% were split between other container technologies or web and EJB containers.
Average Number of Microservices Per Application
Lots of people are actually using a rather small amount of microservices in their main application. Having 5 or less services in the application hints that these might not be the “true” microservices (small and single-purposed).
A term sometimes used for that is “miniservices” – the big monolithic app has been broken down into smaller components, but some of the architectural constraints often associated with microservices have been relaxed (strictly one feature per service, etc.).
Whether a distinction between microservices and miniservices is actually meaningful likely depends on the user. For development and local deployment, miniservices might be pretty similar to working with a monolithic application. For debugging, performance testing, monitoring, or scaling the whole system, the complexity will increase immediately even if you have just a fistful of services.
Additional Resources
Want to see the rest of the survey? You can view the full report and our conclusions by downloading the Java Microservices Survey eBook by clicking the button.
Just getting started with microservices? We have a wealth of resources that can help you set a good strategy for your architectural transition.
Recorded Webinars and Resources
- Improving Performance in Java Microservices
- Igniting Your Digital Transformation With Microservices
- Making the Move to Microservices for Java Applications
- Microservices vs. Mini vs. Monoliths: Winner Takes All
- 2020 Java Developer Productivity Report
Blogs
- 2020 Java Microservices Report
- Testing Microservices in Java
- Kubernetes vs. Docker Swarm
- Popular Java Microservices Frameworks
- When to Use Microservices in Java
- Deploying Microservices in Java
- Java Microservices With Spring
- Exploring Microservices With Play and Akka
- Building Microservices with Spring Cloud
Save Time on Development
Start your free 14-day trial to see how.