Tutorials
Guides to help you get started with development.
Cloud-native Java EE Microservices with KumuluzEE: REST service using config, discovery, security, metrics, logging and fault tolerance
A goal of this tutorial is to develop a cloud-native Java EE microservice application, using KumuluzEE microservice framework and KumuluzEE projects.
Develop microservices with Java EE and KumuluzEE
This article explores the way the microservices can be used together with Java EE using KumuluzEE. It expands on the benefits and drawbacks compared to the monolithic architecture that is popular in Java EE.
Tracing KumuluzEE microservices with Jaeger
Managing microservices becomes harder with each new or updated microservice. When an application experiences a slowdown and its »data flow« goes through several different microservices, pinpointing the exact location of a slowdown may be difficult for a developer. This blog post covers the basics of distributed tracing and demonstrates the usage of KumuluzEE OpenTracing extension with Jaeger to fight the challenges mentioned above.
KumuluzEE microservices in Go and Java
In this tutorial we develop two microservices, one in Java and one in Go. Developed microservices use the KumuluzEE Config and Discovery projects to simplify the configuration management and the service discovery in applications composed from microservices built with different technologies.
Quickstart Samples
Working examples ready for you to get started. All samples are available on GitHub.
JAVA EE MICROSERVICES
NEWMicroservices simple
Simple example of splitting an application into microservices using KumuluzEE.
JAX-RS REST service sample
Develop a REST service using standard JAX-RS 2 API and pack it as a KumuluzEE microservice.
JAX-WS SOAP web service sample
Develop a SOAP web service using standard JAX-WS 2 API and pack it as KumuluzEE microservice.
JPA and CDI sample
Develop JPA entities and use CDI within a REST service and pack it as a KumuluzEE microservice.
Java Server Faces (JSF) sample
Develop a sample JSF application and pack it as a KumuluzEE microservice.
Java Server Pages (JSP) and Servlet sample
Develop a sample JSP and Servlet and pack it as a KumuluzEE microservice.
Servlet sample
Develop a servlet using standard Servlet 3.0 API and pack it as a KumuluzEE microservice.
Websocket sample
Develop a websocket endpoint using standard WebSocket API and pack it as a KumuluzEE microservice.
Bean validation
Use bean validation within a REST service and pack it as a KumuluzEE microservice.
JAX-RS service over HTTPS
Develop a REST service using standard JAX-RS 2 API, expose it over HTTPS and pack it as a KumuluzEE microservice.
JUL sample
Build a REST service which utilizes the default logging implementation by java.util.logging to log basic information and pack it as a KumuluzEE microservice.
KumuluzEE Projects
Logs sample using Log4j2 implementation
Build a REST service which utilizes a built-in logging framework with Log4j2 implementation to log basic metrics and pack it as a KumuluzEE microservice.
Logs sample with JUL implementation
Build a REST service which utilizes a built-in logging framework with JUL implementation to log basic metrics and pack it as a KumuluzEE microservice.
Config sample for built-in configuration sources
Build a REST service which utilizes a build-in configuration framework to access environmental variables and configuration files and pack it as a KumuluzEE microservice.
Config sample with etcd
Build a REST service which utilizes KumuluzEE Config to access configuration properties stored in etcd and pack it as a KumuluzEE microservice.
Config sample with Consul
Build a REST service which utilizes KumuluzEE Config to access configuration properties stored in Consul and pack it as a KumuluzEE microservice
Security sample with Keycloak
Build a REST service which utilizes KumuluzEE OAuth2 to secure the resources with Keycloak using standard Java annotations and pack it as a KumuluzEE microservice.
Security CDI sample with Keycloak
Build a CDI enabled REST service which utilizes KumuluzEE Security to secure the resources with Keycloak using standard Java annotations and pack it as a KumuluzEE microservice.
Discovery - register service with etcd
Develop a REST KumuluzEE microservice and register it with etcd.
Discovery - discover services in servlet with etcd
Develop a KumuluzEE servlet that discovers a microservice registered with etcd.
Discovery - discover services in JAX-RS service with etcd
Develop a REST service that discovers a microservice registered with etcd.
Discovery - Kubernetes sample with etcd
Deploy KumuluzEE microservices, which use Service Discovery to Kubernetes cluster.
Discovery - register service with Consul
Develop a REST KumuluzEE microservice and register it with Consul.
Discovery - discover services in servlet with Consul
Develop a KumuluzEE servlet that discovers a microservice registered with Consul.
Discovery - discover services in JAX-RS service with Consul
Develop a REST service that discovers a microservice registered with Consul.
Event Streaming with Kafka - produce Kafka messages
Develop a REST service that produces Kafka messages to selected topic.
Event Streaming with Kafka - consume Kafka messages
Develop a REST service that consumes Kafka messages of selected topic.
REST Sample
Expand the KumuluzEE JPA and CDI sample with REST query parameters.
CORS sample
Develop a microservice application with suport fot Cross Origin.
Fault Tolerance sample with Hystrix
Build a REST service which utilizes KumuluzEE Faul Tolerance to provide fault tolerance and latency tolerance to your code using the fault tolerance patterns in a KumuluzEE microservice.
Metrics sample
Build a REST service, pack it as a KumuluzEE microservice, and monitor its performance with KumuluzEE Metrics.
Health sample
Build a REST service which utilizes a built-in health framework to expose a health check and pack it as a KumuluzEE microservice.
MicroProfile Config sample
Build a JAX-RS service that utilizes the KumuluzEE MicroProfile Config API implementation to access configuration values and pack it as a KumuluzEE microservice.
Swagger sample
Develop a microservice application with support for Swagger specification.
OpenAPI sample
Develop a microservice application with support for OpenAPI specification.
Microservices with KumuluzEE MicroProfile 1.2
Build a microservice with Eclipse MicroProfile APIs implemented in KumuluzEE MicroProfile 1.2.
Reactive samples using Vert.x
Samples for KumuluzEE Reactive Vert.x project.
gRPC sample
Samples for KumuluzEE gRPC project.
GraphQL sample
Samples for KumuluzEE GraphQL project.
Ethereum sample
Samples for KumuluzEE Ethereum project.
Rest Client sample
Build a REST service, which consumes another REST service using the KumuluzEE Rest Client.
OpenTracing sample
Trace a request across two microservices using Jaeger or Zipkin as the backend.
AMQP sample with RabbitMQ
Produce and consume AMQP messages using the RabbitMQ message broker.
NEWKumuluzEE Version sample
KumuluzEE Version provides mechanisms to expose version details of your microservices.
NEWKumuluzEE Feature Flags sample with Unleash
KumuluzEE Feature Flags enables you to easily manage feature flags in your application.
NEWKumuluzEE JCache sample
KumuluzEE JCache allows usage of JCache annotations and JCache programmatic API in your KumuluzEE applications.
NEWKumuluzEE Database Schema Migrations sample
KumuluzEE Database Schema Migrations project for database schema migrations with Liquibase.
KumuluzEE Node.js Projects
Node.js Config sample
Build a REST service which utilizes Node.js configuration project.
Node.js Discovery sample
Develop a Node.js microservice and register it with Consul or etcd.
KumuluzEE Go Projects
Documentation
Documentation describing how to use KumuluzEE is available on GitHub.
KumuluzEE microservice framework
KumuluzEE
Lightweight open-source framework for developing microservices using standard Java EE technologies and migrating Java EE to cloud-native architecture.
KumuluzEE wiki
Explore KumuluzEE samples. Read about configuration support. Read about TLS/SSL support. Read about Uber JAR support.
Uber JAR support
Uber JAR support - Pack and run microservice as uber JAR
KumuluzEE Config
File and environment variables
KumuluzEE Config with config server
Config server etcd/Consul
KumuluzEE REST
For implementation of common, advanced and flexible REST API functionalities and patterns. Includes support for exposing JPA entities through REST
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 with microservices including 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 Swagger
KumuluzEE Swagger project provides powerful tools to incorporate and visualize the Swagger (OpenAPI 2.0) specification to your microservice.
KumuluzEE OpenAPI
KumuluzEE OpenAPI project provides powerful tools to incorporate and visualize the OpenAPI 3 specification to your microservice.
KumuluzEE Reactive
KumuluzEE Reactive project for developing reactive microservices.
KumuluzEE gRPC
Support for the gRPC framework.
KumuluzEE GraphQL
Developing GraphQL APIs.
KumuluzEE Ethereum
Support for seamless development of Blockchain applications on the Ethereum platform.
KumuluzEE Rest Client
Type-safe approach to invoke RESTful services over HTTP.
KumuluzEE OpenTracing
Distributed tracing solution for KumuluzEE framework.
KumuluzEE AMQP
Support for Advanced Message Queueing Protocol, such as RabbitMQ and ActiveMQ.
NEWKumuluzEE Version
KumuluzEE Version provides mechanisms to expose version details of your microservices.
NEWKumuluzEE Feature Flags
KumuluzEE Feature Flags enables you to easily manage feature flags in your application.
NEWKumuluzEE JCache
KumuluzEE JCache allows usage of JCache annotations and JCache programmatic API in your KumuluzEE applications.
Microprofile
MicroProfile Config 1.3
For microservice configuration.
MicroProfile Health Check 2.0
For service healthchecks.
MicroProfile Fault Tolerance 2.0
For fault tolerant microservices.
MicroProfile Metrics 2.0
For collection and reporting of performance metrics.
MicroProfile JWT Authentication 1.1
For role based access control using OpenID Connect and JSON Web Tokens.
MicroProfile REST Client 1.3
For easy way to define and invoke RESTful services over HTTP.
MicroProfile OpenTracing 1.2.1
For accessing an OpenTracing compliant Tracer object within your JAX-RS application.
NEWMicroProfile OpenAPI 1.1.2
Provides tools to incorporate the OpenAPI 3 specification to your microservices in a standardized way.
Node.js
KumuluzEE Node.js Config
For microservice configuration in Node.js.
KumuluzEE Node.js Discovery
For dynamic service discovery in Node.js.