Skip to content

jexxa-projects/Jexxa

Repository files navigation

Maven Central License

CodeQL Codacy Badge Quality Gate Status Java 25 LTS CI

🧩 Jexxa — A Ports & Adapters Framework for Java

Jexxa is a lightweight, opinionated framework to build durable, modular, and testable business applications using Domain-Driven Design and Hexagonal Architecture (Ports & Adapters).

⚠️ Jexxa is not a general-purpose framework like Spring — it’s focused solely on the business layer and clear system boundaries.

🚀 Key Features

  • Technology-Agnostic Core — Clean separation of domain logic and infrastructure
  • Visible Control Flow — Clear orchestration of application logic
  • Team-Friendly Design — Scales well with cross-functional DDD teams
  • Built-In Adapters — REST (RMI-style), JMS, JDBC, in-memory DB, S3-Storage
  • Resilient Microservice Patterns — Includes transactional outbox, fail-fast startup combined with controlled retry strategies
  • Architecture Validation & Governance — Enforces architectural rules and prevents erosion through automated validation

➡️ Explore the Architecture

📋 Requirements

  • Java 25 or higher
  • Maven-compatible IDE (e.g., IntelliJ IDEA, Eclipse)

🛠️ Quickstart

Hello World Example

public final class HelloJexxa {
    public String greetings() {
        return "Hello Jexxa";
    }

    static void main(String[] args) {
        var jexxaMain = new JexxaMain(HelloJexxa.class);

        jexxaMain
            .bind(RESTfulRPCAdapter.class).to(HelloJexxa.class)
            .run();
    }
}

Add Dependencies

Maven

<dependency>
    <groupId>io.jexxa</groupId>
    <artifactId>jexxa-web</artifactId>
    <version>9.0.7</version>
</dependency>
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-simple</artifactId>
    <version>2.0.18</version>
</dependency>

Gradle:

compile "io.jexxa:jexxa-web:9.0.7"
compile "org.slf4j:slf4j-simple:2.0.18"

⚙️ Configuration

Jexxa expects the following configuration file in the classpath:

📚 Ecosystem & Docs

🧩 Related Projects

🔨 Built With

🤝 Contributing

We ❤️ contributions!

If you want to propose changes or features:

  • Open an issue to start a discussion
  • Submit a PR with tests and updated documentation
  • Questions or suggestions? Open an issue or start a GitHub Discussion

📜 License