The Features

Features

Not a single import statement

              import de.quantummaid.*;
     
public final class MyUsecase {
  ...
}

Let your infrastructure code depend on your business logic - not the other way around. For your core domain, QuantumMaid does not exist. Only that way you can truly follow the rules of Clean Architecture and Domain-Driven Design. Say goodbye to vendor lock-in - you can change the underlying technology any time you want.

Sane architecture without boilerplate

            @Path("/add")
public class MyController {
     
  @GET
  @Produces(MediaType.TEXT_PLAIN)
  @Path("/greeting/{name}")
  public String call(@PathParam String name) {
    return service.greeting(name);
  }
}

Other application frameworks utilize annotations for their configuration. If you use them directly on your core domain, you violate the Dependency Rule of Clean Architecture. If you don't use them directly on your core domain, you are forced to write wrapper classes to carry these annotations. QuantumMaid is not configured via annotations and you are relieved from both.

Scale from 127.0.0.1 over Docker to Serverless

          $ curl localhost:1337/ping
pong
$ curl staging.kubernetes.local/ping
pong
$ curl 84ae72be-e89b-51c3-a82a.amazonaws.com/ping
pong

With out-of-the-box support for any state-of-the-art technology like Jetty, Docker and AWS Lambda, you are truly infrastructure agnostic. Write your business logic once and choose the best fitting technology - as often as you need. Switching from Servlet to AWS Lambda is now a one-line change.

Complete support for Domain-Driven Security

          public final class Username {
  private final String name;
     
  public Username(String name) {
    String cleaned = sanitize(name);
    validateRequiredLength(cleaned, 2, 20);
    this.name = cleaned;
  }
}

In Domain-Driven Design, all domain objects validate themselves. Many frameworks do not respect that and enforce their own style for object creation. They either use a combination of empty constructors and setters or they directly manipulate your bytecode. Either way, they circumvent your validation logic and leave your objects in an undefined state. QuantumMaid creates the objects as you intended and will never skip your validation logic.

Performance in native Java

          $ ./deploy_aws_lambda.sh
"OK"
$ time curl myapplication.amazonaws.com/helloworld
user 0.500s
$ time curl myapplication.amazonaws.com/helloworld
user 0.032s
$ time curl myapplication.amazonaws.com/helloworld
user 0.029s
          

In Serverless, performance is key. Other application frameworks try to increase their speed by having the user compile their code to GraalVM. This introduces several limitations. QuantumMaid gives you fast start-up times and request handling in native Java. All the benefits of Java - no restrictions of GraalVM.

Verified quality

QuantumMaid Sonar

No compiler warnings, no errors in Checkstyle and no issues in SonarCloud. Continuous checks for vulnerabilities and outdated dependencies. All these checks are automatically enforced by our build infrastructure - now and in future releases. The Linux Foundation testifies to our compliance with these best practices by awarding us with the Core Infrastructure Initiative badge.

Usability by design

QuantumMaid features a minimal configuration with reasonable defaults for an easy start. Nonetheless, it allows you to fine-tune every aspect to your needs. QuantumMaid was subject to iterative and rigorous usability testing. Don't spend your time figuring out weird framework details - solve the actual problem.

Getting Started

15MinuteTutorialIcon
15-Minute Tutorial

Try out QuantumMaid with a simple app.

Start Tutorial
60MinuteTutorialIcon
60-Minute Tutorial

Take a deep dive that explains all concepts.

DocumentationIcon
Documentation

All answers to open questions can be found here.

Documentation