Java-Infrastruktur · Egothor
conflux
Eine bewusst kleine Java-Bibliothek für Situationen, in denen unabhängige Komponenten etwas typsicheren gemeinsamen Zustand teilen und auf Änderungen reagieren müssen — ohne daraus ein Dependency-Injection-Framework oder eine vollständige Anwendungsarchitektur zu machen.
Das kleine Problem, das oft zu einem großen Abhängigkeitsgraphen wird
Eine Komponente berechnet einen Wert. Mehrere unabhängige Komponenten benötigen den aktuellen Wert; einige müssen sofort auf Änderungen reagieren. Die naive Lösung verdrahtet direkte Referenzen überall, die „Enterprise“-Lösung importiert womöglich ein komplettes Framework. conflux besetzt bewusst den Raum dazwischen.

- Typsichere Keys reduzieren unbeabsichtigte Integrationsfehler.
- Aktueller Wert + Eventing deckt viele UI- und Infrastruktur-Szenarien ab.
- Weak Listener helfen, unbeabsichtigte Retention zu vermeiden.
- Kleiner Scope macht die Bibliothek leicht in größere Systeme integrierbar.
Ein typsicherer Kontext statt einer String-basierten Map
Der Kontext verwendet typisierte Keys, sodass der Vertrag sowohl den Namen als auch den erwarteten Java-Typ umfasst. Ein Schlüsselname kann nicht unbemerkt in einer Komponente Integer und in einer anderen String bedeuten. Das macht gemeinsamen Zustand leichter nachvollziehbar und verschiebt eine häufige Fehlerklasse näher an die Key-Deklaration.
Key<Integer> COUNT = Key.of("count", Integer.class);
Ctx.INSTANCE.put(COUNT, 42);
int current = Ctx.INSTANCE.get(COUNT);
Ctx.INSTANCE.addListener(COUNT, value -> refreshView(value));Gemeinsamer aktueller Zustand
Komponenten können den aktuellen Wert abrufen, ohne den Producer zu kennen oder dessen Referenz durch die Anwendung tragen zu müssen.
Änderungsbenachrichtigung
Listener können auf Updates reagieren, sodass ereignisbasierte Consumer den Kontext nicht kontinuierlich pollen müssen.
Weak Listener-Referenzen
Subscriptions sind so gestaltet, dass ein vergessenes Unsubscribe den Event Bus nicht automatisch zum Lebenszeit-Eigentümer jedes Listeners macht.
Parallele Nutzung
Concurrent Collections und Copy-on-Write-Listener-Verarbeitung halten die Primitive über Anwendungsthreads hinweg nutzbar.
Bewusst kein Anwendungsframework
conflux will weder Objekterzeugung, Konfiguration, Scheduling noch Business-Logik übernehmen. Der Wert liegt gerade in der engen Aufgabe: ein kleiner Vertrag, der zu einem bestehenden System hinzugefügt werden kann, wenn unabhängige Module einen gemeinsamen Treffpunkt benötigen.
Dieser enge Scope macht die Bibliothek auch als Infrastruktur in größeren Systemen geeignet: Sie löst eine Koordinationsaufgabe und überlässt Architekturentscheidungen der Anwendung.