PRINZIP — SCALABLE ARCHITECTURE
Scalable Architecture
Strukturen, die mit der Nutzerzahl mitwachsen, ohne dass ein Neubau nötig wird — aber ohne dass du am Anfang für Komplexität zahlst, die du noch nicht brauchst.
Warum wir das so machen
Die Begründung.
Skalierbarkeit heißt für uns saubere Trennung von Zuständigkeiten, Dienste, die man vervielfachen kann, und Datenzugriffe, die auch unter Last schnell bleiben. Der wichtigste Teil davon ist der letzte, weil er am häufigsten unterschätzt wird: Eine Abfrage, die bei tausend Datensätzen sofort antwortet, kann bei zwei Millionen sekundenlang brauchen. Das merkt man nicht beim Entwickeln, sondern im Betrieb.
Deshalb messen wir. In der Geoplattform brauchte eine strukturierte Adresssuche ursprünglich rund 1,4 Sekunden, weil sie die Tabelle durchlaufen musste. Nach der Umstellung auf eine normalisierte, indexgestützte Suche liegt sie bei etwa 6 Millisekunden — das Ergebnis von messen, gezielt ändern, wieder messen.
Beim Blättern durch große Ergebnismengen merkt sich der Server, wo weitergelesen wird, statt Zeilen zu zählen. Der Unterschied zeigt sich erst bei Last: Ein Sprung auf „Seite 500“ per Zeilennummer zwingt die Datenbank, alle vorherigen Zeilen zu überspringen, und die Ergebnisse verrutschen, wenn sich die Daten währenddessen ändern.
Die andere Richtung gehört dazu: Wir überbauen nicht. In einem Projekt ist die Verwaltung der Echtzeit-Verbindungen bewusst einprozessig und im Arbeitsspeicher gehalten, mit der ausdrücklichen Festlegung in der Architekturdokumentation, dass die verteilte Variante nicht Teil des ersten Wurfs ist.
Am weitesten treiben wir das in der Bauvorgabe für unsere eigene Mandanten-Plattform. Dort steht ein eigenes Kapitel „Annahmen und Auslegungsgrenzen“ (Stand 11.09.2026): Jede Dimensionierung gilt für definierte Zahlen der ersten Ausbaustufe — bis 50 Mandanten, bis 5.000 Konten, 50 Anfragen pro Sekunde nachhaltig mit 200 im Spitzenfall, alles auf einem einzigen Server-Verbund. Fast jede Grenze hat einen Auslöser, ab dem die nächste Stufe greift, etwa eine Antwortzeit über 400 Millisekunden im 95. Perzentil über sieben Tage.
Die Zahlen beschreiben einen Verbund, nicht die Plattform insgesamt: Weil jeder Mandant eine eigene Datenbank bekommt, kommen weitere Verbünde dazu. Dasselbe System ist außerdem als eigene Instanz für eine einzelne Organisation angelegt — aus derselben Codebasis, auf einem gemieteten Server ihrer Wahl oder im eigenen Haus. Festgelegte Richtung, kein Angebot.
Der Start läuft bewusst als modularer Monolith: Module intern strikt getrennt, aber gemeinsam gebaut, getestet und ausgeliefert. Microservices, Kubernetes und ein Nachrichtenbus sind ausdrücklich nicht Teil der ersten Stufe — mit der Bedingung, wann sie neu zu bewerten wären.
Was du davon hast
Wenn dein Produkt erfolgreich wird, wächst deine Software mit, statt zum Flaschenhals zu werden. Du musst Erfolg nicht mit einer teuren Neuentwicklung bezahlen.
Konkret
Die Entscheidungen dahinter.
Messen statt schätzen
Performance-Arbeit beginnt mit einer Messung und endet mit einer zweiten. Verbesserungen werden mit Vorher-Nachher-Zahlen dokumentiert.
Leseposition statt Zeilennummer
Blätterbare Abfragen merken sich, wo weitergelesen wird — schnell auch bei Millionen Datensätzen und stabil, wenn sich die Daten ändern.
Hintergrundarbeit aus dem Anfrageweg heraus
Was dauert, läuft als Hintergrundlauf mit versetzten Takten — und so gebaut, dass ein zweiter Lauf keinen Schaden anrichtet.
Ausfallfreie Datenaktualisierung
Massenimporte laufen in ein separates Schema und werden atomar eingeschwenkt. Kein Wartungsfenster, kein halb aktualisierter Zustand.
Datenbank-Tuning, das Neustarts überlebt
Speicher- und Cache-Einstellungen sind hinterlegt statt einmalig gesetzt; häufig gebrauchte Daten werden nach dem Start automatisch vorgewärmt.
Bewusst nicht überbauen
Bekannte Grenzen werden dokumentiert, statt sie vorsorglich wegzuarchitektieren.
Belege
Woran du uns messen kannst.
- Österreich-Geoplattform, Stand 06/2026: eine strukturierte Adresssuche wurde von rund 1,4 Sekunden auf etwa 6 Millisekunden gebracht — gemessen vorher und nachher.
- Österreich-Geoplattform: Autocomplete antwortet in 10 bis 85 Millisekunden auf 2,5 Millionen Adressen (Stand 06/2026).
- Österreich-Geoplattform: Routing läuft auf einem Straßengraph mit rund 2,4 Millionen Kanten, inklusive Reisezeit-Matrix und Tourenoptimierung (Stand 06/2026).
- 19 Hintergrund-Warteschlangen in der RetterApp mit versetzten Takten, durchgehend mehrfach ausführbar gebaut (Stand 16.08.2026).
- Österreich-Geoplattform, Stand 06/2026: nächtliche Massenimporte werden atomar eingeschwenkt — ohne Ausfall und mit unangetasteten Altdaten bei jedem Fehler.
- Österreich-Geoplattform: Datenbank-Umkreissuche mit PostGIS und seitenweisem Blättern per Cursor in Produktion.
Häufige Fragen
Was oft gefragt wird.
Woher wisst ihr, dass es unter Last hält?
Weil wir messen statt zu versprechen: kritische Abfragen vor der Optimierung messen, gezielt ändern, erneut messen. So ist die Adresssuche in der Geoplattform schneller geworden. Was wir nicht belegen können, behaupten wir auch nicht.
Warum baut ihr nicht gleich für den Erfolgsfall?
Weil vorsorgliche Komplexität teuer ist und meistens am falschen Ende sitzt. Wir legen die Architektur so an, dass der Ausbauschritt möglich ist, und dokumentieren die bekannten Grenzen. Kommt die Last, weiß man genau, wo anzusetzen ist.
Die anderen Prinzipien.
Jedes für sich erklärt, warum wir so bauen — und woran man es nachprüfen kann.