1
WSO2 Microservices Framework for Java

​WSO2 Microservices Framework for Java

With its lightweight, fast runtime and annotation-based programming model, WSO2 Microservices Framework for Java (WSO2 MSF4J) offers the best option to create microservices in Java with container-based deployment in mind. Microservices developed using WSO2 MSF4J can boot in just a few milliseconds in a Docker container and can easily be added to a Docker image definition.

With its Spring-native programming model, you can now write your microservices, interceptors, ExceptionMappers, and configuration as Spring beans and wire them up at runtime.

WSO2 MSF4J leverages annotations, such as JAX-RS annotations not only to write but also to monitor microservices. WSO2 MSF4J comes with Swagger support, which enables you to add Swagger annotations to your microservices to enrich the Swagger definition of your service. It offers built-in metrics and out-of-the-box integration via WSO2 Data Analytics Server (WSO2 DAS) to monitor microservices behavior.

In addition to the constructs and annotations supported, WSO2 MSF4J 2.0 supports new constructs, such as ExceptionMapper, StreamingOutput and FormParam/FormDataParam annotations.

Additionally, WSO2 MSF4J offers the ability to secure microservices via token validation; it provides pre-integration for WSO2 Identity Server and supports third-party authentication servers.

WSO2 MSF4J has been built with developers in mind by providing samples that will let you start in a few minutes!

You can start by downloading the MSF4J package which contains all the samples as well as the core framework and its dependencies. Then access the getting started documentation on GitHub to get your first microservice up and running.

​WSO2 Microservices Framework for Java

Performance

WSO2 Microservices Framework for Java has been designed to run in a microservice architecture, where performance and low footprint are critical features. Several frameworks are available on the market and we conducted an internal performance comparison, which shows that WSO2 MSF4J performs faster than any other framework today, while consuming a limited amount of memory.

Tests have been conducted without any specific tuning, using the latest Oracle JDK 1.8 version, on machines with 8 cores and 64Gb of RAM.

Detailed benchmark results and conditions are described on the GitHub performance page.

Performance

Features

Lightweight and fast runtime

  • 9MB pack size
  • Starts within 300ms
  • Designed to be run in container-based environments, such as Docker
  • Less than 25MB memory consumption for the WSO2 microservices framework

Simple development, deployment, and monitoring

  • Annotation-based development in Java, including for microservice monitoring
  • Spring-native programming mode
  • Swagger annotations and Swagger definition generation
  • WSO2 Developer Studio-based tooling for generating microservices projects starting from a Swagger API definition
  • Comprehensive samples demonstrating how to develop microservices applications
  • Integration with template engines such as Mustache (experimental)
  • Built-in metrics and analytics via WSO2 Data Analytics Server

Integrated Security

  • Built-in JSON web token (JWT) validation
  • Built-in support for BasicAuth and OAuth2 authentication, leveraging WSO2 Identity Server or 3rd party authentication servers through the standard OAuth2 introspection API.
  • Developers can build custom interceptors to support additional token types

High scalability and reliability

  • High performance HTTP/HTTPs transports based on Netty 4.0
  • Native streaming support for large messages, with full control of streaming by the developer
^