Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Flamme

A Quarkus extension for writing and managing distributed applications.

License: MIT Java 21+ Quarkus 3.x NATS Maven Build

Overview

Flamme is a Quarkus extension which addresses the current problems in modern microservice architectures. It provides a programming model which can server as a basis for a distributed runtime.

A Flamme application is composed of several components. A component is represented by a Java interface annotated with @Flamme, containing a single method that uses Map<String, Message> (a MultiPayload) for both its argument and return types.

Flamme is network agnostic and event-driven — you do not write networking or serialization code. Instead, you declare within the @Flamme annotation which subjects a component subscribes to and publishes to. The framework handles the remaining infrastructure logic.

Using runtime configurations, you can decide which components are co-located in the same process/pod or split across different ones. Flamme ensures all components communicate regardless of their location — via NATS for remote components or direct method invocation for local ones.

Installation

Add the Flamme dependency to the pom.xml of your quarkus application:

<dependency>
    <groupId>io.github.amadeusitgroup</groupId>
    <artifactId>flamme</artifactId>
    <version>${flamme.version}</version>
</dependency>

Use the latest release version, available on the releases page.

Getting Started

Prerequisites

  • Java 21+
  • Maven 3.9+
  • Docker
  • A running NATS server (for distributed deployments)

Run the example

You can find an example application and instructions on how to run it here.

Documentation

Full documentation is available at amadeusitgroup.github.io/flamme.

License

This project is published under the MIT License.

Releases

Packages

Used by

Contributors

Languages