A lightweight open-source microservice framework. Develop microservices with Java EE technologies. Migrate existing Java EE applications to microservices and cloud-native architecture.

KumuluzEE is the Java Duke's Choice Award Winner

KumuluzEE has won the prestigious 2015 Java Duke's Choice Award. The Duke's Choice Award is the Java community equivalent of winning an Oscar. The award celebrates extreme innovation using Java technology. The primary judging criteria for this prestigious award is innovation, putting small developer shops on equal footing with global giants. Java Duke's Choice Award winners are recognition as an elite member of the Java ecosystem. Previous award winners include Hadoop, Jenkins, TomEE, and several other well-known products.

Why KumuluzEE


Develop pure Java EE based microservices and pack and execute them as stand-alone (Fat/Uber) JARs.

Develop microservices using standard Java EE APIs and technologies.

Leverage your existing Java EE knowledge and extend it to cloud-native architecture.

Gradually migrate existing Java EE applications to microservices and cloud-native architecture.

KumuluzEE is a cloud-native, pure and open microservice framework. Light-weight, small footprint, rapid start, container-ready.

KumuluzEE is not a traditional Java EE app server, neither does it embed an app-server inside microservices. It provides configurable Java EE environment inside stand-alone JARs, which only require JRE (Java Runtime Environment) to execute.

KumuluzEE generates pure, efficient Java microservices, which start considerably faster and have lower footprint than the majority of other Java microservice frameworks.

KumuluzEE is fully open, standard-based and extensible.

Zero lock-in. KumuluzEE does not require any specific code. Everything is configured in pom.xml. You have the complete control over Java EE components you are using.

KumuluzEE allows you to extend your microservices with common cloud-native patterns.

KumuluzEE provides full support for config, discovery, health, logging, security, fault tolerance, circuit-breakers, event streaming, metrics, REST patterns and more.

KumuluzEE microservices can be packed as Docker containers and provide full support for container environments.

KumuluzEE microservices and fully compatible with Kubernetes.

Service discovery, configuration, health, metrics and other extensions support specifics of Kubernetes and have been thoroughly tested.

KumuluzEE microservices provide first-class support for API gateways.

Service discovery, configuration and other extensions can be configured to work with different API gateways.

KumuluzEE is fully integrated with KumuluzAPI, an innovative microservice API Management and other Kumuluz and KumuluzDigital products.

What people are saying about KumuluzEE

KumuluzEE is a great community effort to power Java EE API based microservices, especially on the cloud.

~ Reza Rahman, Senior Java Technologist, Author, Speaker

Read more

Example code


@Path("/orders")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
@RequestScoped
public class OrdersResource {

    @PersistenceContext(unitName = "books")
    private EntityManager em;

    @GET
    @Path("/{id}")
    public Response getOrder(@PathParam("id") Integer id) {

        BookOrder o = em.find(BookOrder.class, id);

        if (o == null)
            return Response.status(Response.Status.NOT_FOUND).build();

        return Response.ok(o).build();
    }
}
					

<properties>
    <kumuluz.version>2.3.0</kumuluz.version>
</properties>

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>com.kumuluz.ee</groupId>
            <artifactId>kumuluzee-bom</artifactId>
            <version>${kumuluz.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

<dependencies>
    <!-- MicroProfile 1.0 -->
    <dependency>
        <groupId>com.kumuluz.ee</groupId>
        <artifactId>kumuluzee-microProfile-1.0</artifactId>
    </dependency>

    <dependency>
        <groupId>com.kumuluz.ee</groupId>
        <artifactId>kumuluzee-jpa-hibernate</artifactId>
    </dependency>
</dependencies>
	              	

What is KumuluzEE

KumuluzEE is a lightweight framework for developing microservices using standard Java EE technologies and migrating existing Java EE applications to microservices. KumuluzEE packages microservices as standalone JARs. KumuluzEE microservices are lightweight and optimized for size and start-up time. They fit perfectly with Docker containers.

KumuluzEE also provides extensions for developing common patterns in cloud-native architectures, including configuration, logging, discovery, circuit-breakers, metrics, security, event streaming and more.

KumuluzEE microservice framework

For creating microservices using JavaEE and packing them as Docker containers. Includes a configuration framework and uber-JAR support.

KumuluzEE REST

For implementation of common, advanced and flexible REST API functionalities and patterns. Includes support for exposing JPA entities through REST.

KumuluzEE Config

For dynamic centralized configuration (using ENV variables or config server, such as etcd or Consul).

KumuluzEE Logs

For advanced microservice framework for logging.

KumuluzEE Discovery

For dynamic service discovery (etcd or Consul). Fully compatible with Kubernetes.

KumuluzEE Metrics

For easy collection and reporting of performance metrics.

KumuluzEE Security

For easy integration with OAuth2/OpenID identity and access management providers.

KumuluzEE Health

For implementing health checks and exposing microservice health information.

KumuluzEE Fault Tolerance

For implementing fault tolerance patterns, circuit-breakers, and decoupling microservices.

KumuluzEE Event Streaming

For event streaming support using Apache Kafka.

KumuluzEE CORS

For Cross-Origin Resource Sharing (CORS) support.

KumuluzEE Blockchain

For Blockchain-enabled microservices.

Coming soon

KumuluzEE releases.

Microservices with Java EE

A standard approach for deploying Java EE applications is packing all components into a single EAR/WAR archive and deploying the archive on the application server. This leads to monolithic architectures which make applications difficult to maintain and scale in cloud (PaaS) environments. The microservice architecture addresses these shortcomings by decomposing an application into a set of stateless microservices. Each microservice has a well-defined functionality and an interface for communication with other services.

They trust us

Want to be listed here? Please contact us!