Plattformarchitektur
Die technische Grundlage hinter jeder Flowtig-Anwendung.
Flowtig wurde als modulare Plattform entwickelt, auf der unabhängige Anwendungen eine gemeinsame technische Grundlage nutzen und gleichzeitig logisch voneinander getrennt bleiben.
Anstatt eine große monolithische Anwendung zu entwickeln, unterteilt Flowtig unterschiedliche Geschäftsbereiche in eigenständige Dienste, die über gemeinsame Konventionen und die zentrale Plattforminfrastruktur miteinander verbunden sind.
Dieses Dokument beschreibt die grundlegenden Architekturprinzipien der Plattform.
Plattformübersicht
Flowtig besteht aus vier wesentlichen Ebenen.
flowchart TB
CLIENTS["Clients<br/>Web · Mobile · Desktop"]
GATEWAY["Gateway<br/>Routing · Navigation · Authentifizierung"]
CORE["Plattformkern<br/>Identitäten · Berechtigungen · Abrechnung · Mandanten"]
APPS["Anwendungen<br/>Unabhängige Geschäftsbereiche"]
TOOLS["Tools<br/>Spezialisierte Werkzeuge"]
INFRA["Infrastruktur<br/>Container · Datenbanken · Objektspeicher · Hintergrundaufgaben"]
CLIENTS --> GATEWAY
GATEWAY --> CORE
CORE --> APPS
CORE --> TOOLS
APPS --> INFRA
TOOLS --> INFRA
Plattformkern
Jede Anwendung greift auf dieselben Plattformdienste zurück.
Zu den zentralen Aufgaben gehören:
- Authentifizierung
- Identitätsverwaltung
- Mandantenverwaltung
- Berechtigungen
- Abonnements
- Abrechnung
Anwendungen müssen diese Funktionen nicht selbst implementieren und können sich dadurch vollständig auf ihren jeweiligen Geschäftsbereich konzentrieren.
Anwendungen
Geschäftsfunktionen werden in unabhängige Anwendungen aufgeteilt.
Beispiele sind:
- Kontakte
- Arbeitszeit
- Zeiterfassung
- Rechnungen
- Lager
- Bautagebuch
- Immobilien
Jede Anwendung:
- verwaltet ihre eigene Geschäftslogik
- definiert ihr eigenes Datenmodell
- integriert sich über gemeinsame Plattformkonventionen
- kann unabhängig weiterentwickelt werden
Tools
Nicht jede Funktion benötigt eine vollständige Geschäftsanwendung.
Flowtig bietet daher zusätzlich schlanke Tools, die gezielt einzelne technische oder geschäftliche Aufgaben lösen.
Beispiele sind:
- Daywalker
- IBAN Checker
Tools verwenden dieselbe Infrastruktur wie Anwendungen, bleiben dabei jedoch bewusst auf ihre jeweilige Aufgabe fokussiert.
Mandantenfähig von Grund auf
Die Trennung von Mandanten ist ein grundlegendes Architekturprinzip.
Jede Organisation arbeitet innerhalb ihres eigenen isolierten Datenbereichs.
Plattformweite Dienste wie Authentifizierung, Abonnements und Berechtigungen werden gemeinsam bereitgestellt, während Geschäftsdaten voneinander getrennt bleiben.
Zu den grundlegenden Prinzipien gehören:
- Mandantentrennung
- Explizite Berechtigungen
- Rollenbasierter Zugriff
- Gemeinsame Plattformdienste
API-Design
Flowtig stellt seine Funktionen hauptsächlich über GraphQL bereit.
REST-Endpunkte werden dort eingesetzt, wo sie für Infrastruktur, Administration und spezialisierte Arbeitsabläufe sinnvoll sind.
Die Plattform legt besonderen Wert auf:
- Klare Verantwortlichkeiten für Schemas
- Starke Typisierung
- Vorhersehbare Schnittstellen
- Stabile Schnittstellenverträge
Infrastruktur
Flowtig wurde für moderne Cloud-native-Bereitstellungen entwickelt.
Typische Komponenten der Plattform sind:
- Docker-Container
- PostgreSQL
- Redis
- Celery
- Objektspeicher
- CI/CD-Pipelines
Alle Anwendungen nutzen dieselbe technische Betriebsgrundlage und bleiben gleichzeitig unabhängig wartbar.
Designprinzipien
Mehrere grundlegende Architekturprinzipien bestimmen die Entwicklung von Flowtig.
Modularität
Anwendungen sollen unabhängig voneinander verständlich und wartbar bleiben.
Explizitheit
Das Verhalten der Plattform soll jederzeit vorhersehbar und transparent sein.
Skalierbarkeit
Neue Anwendungen sollen sich ohne grundlegende Änderungen an der Architektur integrieren lassen.
Konsistenz
Benutzer sollen innerhalb der gesamten Plattform dieselbe Navigation, dieselben Berechtigungsmodelle und einheitliche Arbeitsabläufe erleben.
Langfristige Wartbarkeit
Flowtig wurde dafür entwickelt, sich kontinuierlich weiterzuentwickeln und dabei eine klare Struktur zu bewahren.
Das Gesamtbild
Flowtig ist nicht einfach nur eine Sammlung von Anwendungen.
Es ist eine Plattform, die durch unabhängige Dienste wächst und dabei auf einer gemeinsamen Grundlage aufbaut.
Das Ziel ist einfach:
Mehr Funktionen, ohne mehr Komplexität.