Backend & APIs

Backend-Systeme und Schnittstellen, die unter Last bestehen

Wir entwerfen und bauen den Teil des Produkts, den niemand sieht, bis er ausfällt: Schnittstellen, Datenmodelle, Anmeldung und die Anbindungen, die ein Unternehmen zusammenhalten.

Wo Backends gewöhnlich schieflaufen

Backend-Probleme drehen sich selten um rohe Geschwindigkeit. Sie drehen sich um ein Datenmodell, das für die erste Version passte und heute drei Joins und eine Unterabfrage braucht, um eine Routinefrage zu beantworten; um eine Schnittstelle, die HTTP 200 mit einem Fehler im Rumpf zurückgibt, sodass jeder Client raten muss; um Anbindungen, die um drei Uhr morgens still ausfallen und zwei Wochen später über eine Kundenbeschwerde entdeckt werden.

Die teuren Entscheidungen fallen früh und lassen sich schwer rückgängig machen. Wie das Schema normalisiert ist, wo die Grenzen zwischen Diensten liegen, wie Anmeldung und Berechtigung getrennt sind, ob die Schnittstelle versioniert ist. Sich zu irren, lässt sich eine Weile aushalten und dann plötzlich nicht mehr.

Wir verbringen lieber eine Woche mit dem Datenmodell als ein Quartal damit, es zu migrieren.

Was wir bauen

Schnittstellen, entworfen für ihre Nutzer

REST oder GraphQL, gewählt nach den Clients, die sie nutzen werden, und nicht nach Vorliebe. Einheitliche Fehlerbehandlung mit korrekten Statuscodes, Seitenweise Abfrage, die auch bei großen Mengen trägt, und Versionierung, bevor Sie sie brauchen — denn sie nachzurüsten, während Clients live sind, ist schmerzhaft.

Datenmodelle, die die nächste Funktion überleben

Schemaentwurf mit Blick auf die Abfragen, die Sie tatsächlich ausführen werden, passende Indizierung und umkehrbare Migrationen. Wir setzen relationale, dokumentenorientierte oder Graphdatenbanken nach der Form der Daten ein statt aus Gewohnheit.

Anmeldung und Berechtigung, getrennt gehalten

Sitzungs- oder Token-Anmeldung nach aktuellem Stand und ein Berechtigungsmodell, das bei jeder Anfrage auf dem Server geprüft wird. Zu verwechseln, wer jemand ist, mit dem, was er darf, gehört zu den häufigsten Ursachen für Fehler in der Zugriffskontrolle.

Anbindungen, die laut scheitern

Verbindungen zu Dritten mit Wiederholungen, Wartezeiten, Idempotenz und einer Behandlung unzustellbarer Nachrichten, dazu Alarmierung, sobald etwas stehen bleibt. Eine fehlgeschlagene Anbindung sollte jemanden wecken und sich nicht still ansammeln.

Hintergrundarbeit und Zeitsteuerung

Warteschlangen für alles Langsame, Unzuverlässige oder Stoßweise — Importe, Exporte, Dokumenterzeugung, Benachrichtigungen — damit eine Nutzeranfrage nie auf einen Dritten wartet.

Beobachtbarkeit ab dem ersten Deployment

Strukturierte Protokollierung, Zustandsprüfungen und Messwerte auf den Pfaden, die zählen. Eine Störung im Echtbetrieb zu diagnostizieren, sollte eine Abfrage sein und keine Ausgrabung.

Technologien, die wir dafür einsetzen

Laufzeit

  • Node.js
  • Express
  • TypeScript

PHP

  • Laravel
  • PHP

Schnittstellen

  • REST
  • GraphQL
  • OpenAPI
  • Webhooks

Datenbanken

  • MySQL
  • MongoDB
  • Neo4j

Betrieb

  • Docker
  • Azure
  • GitHub Actions

Wir wählen daraus nach dem, was das Projekt braucht und was Ihr Team nach der Übergabe pflegen kann — nicht danach, womit wir am liebsten arbeiten. Ist bereits ein tragfähiger Technologiestand vorhanden, arbeiten wir darin weiter.

Typische Projekte

Eine Schnittstelle für einen mobilen oder Web-Client

Die Serverseite eines Produkts bauen, dessen Oberfläche bereits entworfen oder bereits gebaut ist, einschließlich Anmeldung und dem Datenmodell darunter.

Eine langsame Datenbank retten

Abfrageprofilierung, Arbeit an Indizes und Schemaänderungen an einem System, das seinem ursprünglichen Entwurf entwachsen ist. Häufig günstiger und schneller als die stattdessen erwogene Aufrüstung der Infrastruktur.

Einen Monolithen gezielt zerlegen

Die Teile einer großen Anwendung herauslösen, die wirklich unabhängig skalieren oder ausgerollt werden müssen — und die anderen in Ruhe lassen, und das sind meist die meisten.

Systeme verbinden, die nicht miteinander sprechen

Integrationsarbeit zwischen Plattformen mit unvereinbaren Annahmen über Identität, Zeit und Datenform. Der Wert liegt darin, die Randfälle sauber zu behandeln.

Fragen, die uns dazu gestellt werden

Node.js oder Laravel — was sollten wir wählen?

Beide tragen ernsthafte Produktionssysteme, die Entscheidung hängt also eher am Kontext als an Messwerten. Node mit TypeScript erlaubt es, Typen und Sprache mit einem React-Frontend zu teilen, und passt zu Echtzeit und Ein-/Ausgabe mit hoher Gleichzeitigkeit. Laravel bringt viel Struktur mit — Anmeldung, Warteschlangen, Zeitsteuerung, ein ORM — und führt bei klassischen Geschäftsanwendungen meist schneller zu einem lauffähigen Produkt. Die Fähigkeiten Ihres bestehenden Teams sollten schwer wiegen, denn Wartbarkeit überdauert die Entwicklung.

REST oder GraphQL?

REST ist einfacher zwischenzuspeichern, einfacher zu untersuchen und für die meisten Anwendungen ausreichend. GraphQL rechtfertigt seine Zusatzkomplexität, wenn viele unterschiedliche Clients unterschiedliche Formen derselben Daten brauchen oder wenn mobile Clients zu viele Anfragen stellen. GraphQL für einen einzigen Web-Client zu wählen, bringt meist Aufwand ohne entsprechenden Ertrag.

Können Sie ein bestehendes Backend verbessern statt ersetzen?

Meistens ja, und das ist in der Regel die bessere Rechnung. Wir beginnen mit Profilierung und einer Durchsicht und nehmen uns dann die konkreten Engpässe vor. Vollständige Neuschreibungen sind das letzte Mittel — sie dauern länger, als irgendjemand schätzt, und legen die Arbeit an Funktionen für ihre gesamte Dauer still.

Übernehmen Sie Hosting und Deployment?

Wir richten die Deployment-Pipeline, die Containerisierung und die Umgebungen ein und können die Infrastruktur dauerhaft betreiben oder sie mit Dokumentation an Ihr Team übergeben. Die Konten laufen in beiden Fällen auf Ihren Namen.

Wie gehen Sie mit Sicherheit um?

Serverseitige Prüfung jeder Eingabe, parametrisierte Abfragen, Geheimnisse außerhalb des Repositorys, Prüfung der Abhängigkeiten in der CI, Zugriff nach dem Prinzip der geringsten Rechte sowie aktueller Stand bei Passwortspeicherung und Sitzungsverwaltung. Wir sind kein Penetrationstest-Haus; für Systeme mit regulierten Daten empfehlen wir zusätzlich eine unabhängige Prüfung.

Sie denken über Backend & APIs nach?

Schicken Sie uns das Problem und die Randbedingungen, die Sie bereits kennen. Wir melden uns mit dem, was es unserer Ansicht nach braucht, einem Vorgehen und einer realistischen Größenordnung — oder mit der Auskunft, dass wir dafür nicht die Richtigen sind.

Gespräch beginnen