Alka runs Java plugins from config files, and shows them in a diagram.
You write small components as plain jars. A config file says which ones to load and how they are connected. Alka Studio draws that as a diagram, edits the settings, starts and stops the service and shows its log.
Needs Java 21 or newer.

Why
Most systems come down to connecting things: inputs, outputs, processes and processing. It can be transactional data, where speed, precision and robustness are not optional, or a set of services that all need the same logic. In both cases what helps is small building blocks that fit together the way you want, when you want.
There are two kinds of code in such a system. Some is general, and everybody uses it. Some is written for one customer: it has to fit in, but it is useless to anyone else. Both should plug into the same thing.
Alka is a start in that direction: small blocks of code that talk to each other inside one process, with almost zero overhead, and no network or broker between them. It is small, and it leaves a lot open.
How it works
A plugin does the work: it reads something, answers something, calls something, and sends events on to other plugins.
A manager holds something that plugins share, like a connection or a cache. Which manager a plugin gets is decided in the config, not in the code.
Each of them is a jar. A service is a few lines of config that name the jars and connect them. The settings of a component are declared on its class, and the Studio makes a form from them:
@AlkaSettings(description = "Greets its manager.", value = {
@Setting(key = "hello.intervalSeconds", type = SettingType.NUMBER,
defaultValue = "2", min = "1", max = "3600",
description = "Seconds between two greetings.")
})
public class HelloPlugin extends ObjectPlugin { /* init, run, stop, accept */ }
The Studio
Drag a jar onto the diagram, draw a line between two boxes, change a setting, press Start. The Studio writes the config and keeps the older versions of every file. It checks the service before it starts, and shows the log with filters and the numbers of every box while it runs.
The Studio is optional. Alka runs completely without it: the engine is started from a script, and the config files are plain text. If you prefer to build and wire everything by hand, you can.

Try it
- Download
alka-0.2.0.zipfrom the latest release and unzip it. - Start
studio.bat(./studio.shon Linux and macOS). Select the service alkaprocessor and press Start. That is the demo: one plugin talks to a manager and passes the answer to a second plugin. - To make your own, you need Maven 3.9 (how to install it, and how to use IntelliJ). In a terminal (on Windows the Command Prompt), this makes a project with a manager, a plugin and a service:
mvn archetype:generate -DarchetypeGroupId=com.alkadev \ -DarchetypeArtifactId=alka-sample-archetype -DarchetypeVersion=0.2.0 - Build it and copy it into the
homefolder of the package. It shows up in the Studio:cd myalka mvn install mvn package alka:deploy -Dalka.home=<the folder "home" of the package>
The same path with pictures of the Studio: the walkthrough. More in Your first plugin and How Alka works.
License
The API, the Maven plugin, the project generator and the samples are Apache 2.0. They are on GitHub and on Maven Central (com.alkadev).
The engine and the Studio come as a package and are free for noncommercial use (PolyForm Noncommercial 1.0.0, with a few added terms). For commercial use, open an issue and ask.