Note: The source of this content is the full version of our recent report Going Reactive 2016.
Microservices-based systems have been gaining a lot of attention lately. Martin Fowler, the well-known co-author of the Agile Manifesto, has produced a popular explanation of microservices with James Lewis that has been getting a lot of traction with developers. Industry analyst Gartner is emphasizing the importance of microservices within its enterprise clientele, ranking microservice-based architecture (MSA) within its top 10 strategic technology trends for 2015, writing:
Monolithic, linear application designs are giving way to a more loosely- coupled integrative approach. Microservice architecture is an emerging pattern for building distributed applications that support agile delivery and scalable deployment.
With all of this buzz in the market, we were wondering what role microservices adoption was playing in the Reactive journey. For the purposes of this survey, we did not set out to define microservices. Rather, we simply asked respondents to self-select whether or not they considered their systems to be microservices-based. The data reveals a notable increase in MSA adoption as respondents progress along their Reactive journey from learning to deploying. Additionally, a preference for tools and technologies begins to emerge among adopters of MSA.
Let's see how...
Out of 3060 overall users, 33% identifed their systems as microservices-based. In the image above, we overlayed this data with phase of journey, revealing a sharp rise in MSA adoption. Among the respondents that are just beginning to learn about Reactive systems, 16% are using microservices, rising to 28% among those that are already doing research or building a prototype. Where MSA adoption truly becomes signifcant is among the power user group (those respondents actively building and running production applications), where 50% are working with microservices.
Microservices-based architectures have their foundation in the core concepts of Reactive systems: asynchronous and message-driven, highly resilient against failures, elastically scalable on demand, and consistently responsive. In addition to Scala and Java 8, here are the tools and technologies that rise significantly in use among MSA adopters:
Akka
Apache Cassandra
Apache Kafka
Apache Spark
Play Framework
Amazon EC2
Docker
Apache Mesos
Let's take a look to see the adoption rate of these technologies among respondents who describe their systems as microservices-based, compared to all respondents and those who do not use microservices.
The respondents of the survey have a lot more to share on Fast Data and related technologies, the growth of Reactive as a concept in the community, and other tool preferences.
p.s. if you'd like to talk to someone at Lightbend, feel free to request contact!