Micronaut is a JVM-based, full-stack framework for building modular, lightweight, and easily testable microservice and serverless applications. One of the most exciting features of Micronaut is its compile-time dependency injection mechanism. While most frameworks use reflection and proxies to perform dependency injection at runtime, Micronaut builds its dependency injection data at compile time. Additionally, Micronaut integrates with GraalVM for building native images. The result is a monumental leap in startup time, fast throughput, and a minimal memory footprint. Micronaut provides first-class support for reactive programming, for both clients and servers. You can choose your reactive implementation as both RxJava and Project Reactor are supported. It supports multiple service discovery tools such as Eureka and Consul, and also works with different distributed tracing systems such as Zipkin and Jaeger. It supports you by creating serverless functions running on AWS, Google Cloud, and Azure. Key features:
- Polyglot framework – Micronaut is compatible with Java, Groovy, and Kotlin. Scala is on the roadmap.
- Natively cloud-native – Built-in cloud support including discovery services, distributed tracing, and cloud runtimes
- Fast data-access config – Quick configuration of your favorite data-access layer and the APIs to write your own
- MicroStream persistence – Quick and convenient configuration of MicroStream micro persistence built for high-performance cloud-native microservices
- Fast, easy UNIT testing – Easily spin up servers and clients in your unit tests and run them instantaneously
- Aspect-oriented API – Provides a simple, compile-time, aspect-oriented programming API that does not use reflection
- Seamless API visibility – With support for OpenAPI and Swagger, your consumers will have everything they need to integrate with your services
- AOT compilation – Keeps your startup time and memory footprint low by doing the heavy lifting up-front
- Smooth learning curve – Realize benefits quickly by using familiar annotations in the way you are used to
Get Micronaut: https://micronaut.io/
Microservices
Cloud computing and microservices are changing the entire software industry. According to an O’Reilly survey, more than 30% of large enterprises have begun to use microservices. The main benefits for organizations are better feature flexibility, faster handling of changing business requirements, better overall scalability, and improved developer productivity. More than 80% of developers worldwide expect microservices to become the standard architecture in the next few years, but more than half do not have related skills. Our goal is to help Java developers get started with microservices and use them in production.
Java is changing radically: Traditional Java is not suited for the cloud
The way we used to build enterprise applications for 25 years is changing fundamentally. Apps must be easy to deploy, fail-safe, and scalable to run perfectly in the cloud and to minimize cloud costs – they must be cloud native. However, monolithic apps are not suited for that. To meet those requirements large applications must be divided into many single microservices. Microservices can be developed, tested, and deployed independently from each other, and run within their own container and JVM environment.
Unfortunately, the traditional application server approach and even the JVM are not suited for running containerized microservices. The JVM startup time is too slow and the memory footprint too high so traditional Java cannot keep pace with modern serverless functions. This is also true for traditional database programming and monolithic database servers.
New cloud-native Java technology stack
A new Java cloud-native technology stack is available that revolutionizes Java. There are 3 main game-changers:
- Comparable to Java EE, there is a new standard called MicroProfile. Modern microservice frameworks implementing MicroProfile, enable you to build microservices and even serverless functions in good old powerful Java.
- The revolutionary GraalVM lets you build native images: Java as fast as C, millisecond startup time, and minimal footprint.
- MicroStream is a Java-native persistence that allows you to store any object graph or single subgraphs natively, which means without any mappings. The engine enables you to create Java in-memory database apps, microsecond query time, tremendous throughput and is predestined for microservices having their own persistence.
We help you to get started with microservices
Microservices come with a paradigm shift in architecture and if you want to develop state-of-the-art enterprise applications you must have microservices know-how. These courses will help you to learn how to develop highly efficient and powerful microservices in Java.