Zum Inhalt springen

Systemintegration

Laravel-Integrations-Engineering

Eine Laravel-Anwendung mit den Systemen verbinden, auf denen ein Unternehmen läuft - ERPs, Zahlungsanbieter, E-Rechnungsplattformen, Banken - und den Tag überstehen, an dem die Gegenseite ausfällt.

Sehr wenige Anwendungen sind allein. Es gibt ein Buchhaltungssystem, dem die Rechnungsnummern gehören, einen Zahlungsdienstleister, der entscheidet wann Geld echt ist, ein Lager, das Meinungen über Bestände hat, und zunehmend eine Steuerbehörde, die Dokumente in strukturierter Form verlangt.

Integration ist der Ort, an dem in einer Geschäftsanwendung die wirklich harte Entwicklungsarbeit sitzt, und sie wird fast immer unterschätzt – weil der Code geradeaus ist und alles darum herum nicht.

Was wir anbinden

Buchhaltung und ERP. SAP, Logo, Netsuite, Xero, Sage und was ein Unternehmen sonst betreibt, seit bevor irgendjemand der heute dort Beschäftigten ankam. Das wiederkehrende Problem ist nicht das Protokoll – es ist, dass beide Systeme glauben, ihnen gehöre derselbe Datensatz, und niemand entschieden hat, welches gewinnt.

Zahlungsdienstleister. Karten, lokale Verfahren, Lastschriftmandate, Marktplatz-Aufteilungen. Jeder hat sein eigenes Modell davon, was eine Zahlung ist, und die Unterschiede reichen bis in die Bestelltabelle statt beim API-Client aufzuhören - Stripe ist das durchgearbeitete Beispiel, und der Rest unterscheidet sich in den Details statt in der Form.

E-Rechnungsplattformen. Zunehmend verpflichtend und zunehmend je Land anders – ZATCA, XRechnung, Peppol, und der akkreditierte Anbieter, der jeweils dazwischensitzt. Eine Rechnung wird zu einem asynchronen Dokument mit einer Zustandsmaschine daran.

Banken und Dateien. Kontoauszugsimporte, Zahlungsdateien, Abstimmung. Die Formate sind alt, schlecht dokumentiert und unversöhnlich, und die Arbeit ist Zuordnung statt Parsen.

Alles andere. Versanddienstleister, SMS, Identitätsanbieter, CRMs, staatliche Register.

Die Teile, die entscheiden ob es funktioniert

Eine Grenze, die Ihnen gehört. Ihre Anwendung spricht mit Ihrer Schnittstelle; eine Implementierung spricht mit deren API. Das kostet fast nichts und macht den Wechsel eines Anbieters zu einer Woche statt zu einem Quartal – was mehr zählt als es klingt, denn Anbieter werden übernommen, verabschieden Versionen und ändern Preise.

Idempotenz, weil alles zweimal ankommt. Webhooks werden erneut zugestellt. Wiederholungen feuern nach einer Anfrage, die tatsächlich erfolgreich war. Ein Netzwerk-Timeout sagt Ihnen nichts darüber, ob die Gegenseite es verarbeitet hat. Jeder Schreibvorgang über die Grenze braucht einen Schlüssel, der den zweiten Versuch wirkungslos macht, und dieser Schlüssel gehört ins Schema und nicht in die Absichten eines Entwicklers.

Eine Entscheidung über das Scheitern, je Integration. Wenn deren System unten ist: Scheitert die Aktion des Nutzers, wandert sie in die Queue, oder läuft sie eingeschränkt weiter? Eine Karte zu belasten ist nicht dasselbe wie eine Werbemail zu senden, und beide gleich zu behandeln ist der Weg, auf dem ein Ausfall bei einem Anbieter zu einem Ausfall bei Ihnen wird.

Ratenbegrenzungen bewusst respektiert. Backoff, eine Queue, die Arbeit verteilt, und eine Obergrenze, die Sie setzen statt sie zu entdecken. Gedrosselt zu werden, weil Sie ein Jahr Nachbefüllung in vier Minuten gesendet haben, ist ein selbstverschuldeter Vorfall.

Ein Protokoll des Austauschs. Jede Anfrage und Antwort, aufbewahrt lange genug, um einen Streit zu klären. Wenn die Gegenseite sagt, sie habe es nie erhalten, ist das der Unterschied zwischen einer Fünf-Minuten-Antwort und zwei Wochen.

Abstimmung ist die eigentliche Arbeit

Zwei Systeme, die dieselben Fakten halten, werden sich widersprechen. Nicht vielleicht – sie werden, denn Nachrichten gehen verloren, Korrekturen werden auf einer Seite eingetragen, und irgendwann bearbeitet jemand einen Datensatz von Hand.

Eine Integration, die Übereinstimmung annimmt, entdeckt die Abweichung, wenn sich ein Kunde beschwert. Eine ordentlich gebaute Integration prüft: eine geplante Aufgabe, die beide Seiten vergleicht, ein Bericht über Unterschiede, und eine festgelegte Auflösung je Art. Das ist unglamourös und es ist der Unterschied zwischen einer Verbindung, der Sie trauen, und einer, die Sie ewig stichprobenartig prüfen müssen.

Wie ein Projekt abläuft

Schicken Sie die API-Dokumentation dessen, womit Sie sprechen müssen, und Zugangsdaten für eine Sandbox, falls es eine gibt. Der größte Teil der Schätzung entsteht beim Lesen dessen, was die Gegenseite tatsächlich zusichert, und nicht dessen, was ihre Marketingseite behauptet.

Der Leistungsumfang, der zurückkommt, listet jede Integration, ihre Fehlerfälle und das, was die Abstimmung damit tun muss. Er trägt einen Preis und ist das, worauf der Vertrag zeigt. Stellt sich eine Integration als Forschungsprojekt statt als Bau heraus, steht das als eigene Zeile darin und nicht als Überraschung im zweiten Monat.

Dann die Arbeit, in Ihrem Repository, mit der Abstimmung gebaut zur selben Zeit wie der Normalfall.

Was Sie bekommen

Die Integration als prüfbare Pull Requests, die Schnittstelle, die den Anbieter kapselt, das Queue- und Wiederholungsverhalten mit aufgeschriebenen Fehlerentscheidungen, die Abstimmungsaufgabe und ihren Bericht, und ein Dokument darüber, was ausgetauscht wird und was passiert, wenn es das nicht wird.

Wo die Arbeit Rechnungsstellung oder Steuermeldung in einem bestimmten Land berührt, sind die Rahmenbedingungen dieses Marktes Teil des Umfangs statt einer Entdeckung. Was sich in Deutschland, Saudi-Arabien, den VAE, dem Vereinigten Königreich und den Niederlanden jeweils ändert, ist auf den englischsprachigen Marktseiten im Einzelnen beschrieben, auf Englisch.

Umfang und Konditionen

Zusammenarbeit
Fester Umfang, schriftlich vereinbart, bevor die Arbeit beginnt. Kein Tagessatz gegen ein offenes Backlog.
Preis und Dauer
Beides wird je Projekt festgelegt, sobald der Umfang steht. Gemeinsam angeboten, bevor etwas gebaut wird.
Was wir von Ihnen brauchen
Eine Person, die entscheiden darf, und Zugang zu Ihrem Repository und Ticketsystem.
Nicht enthalten
Alles außerhalb des vereinbarten Umfangs. Es wird ein eigener Umfang statt eines Änderungsauftrags.
Kosten Dritter
Hosting, Lizenzen, API-Gebühren und SaaS-Abonnements schließen und zahlen Sie selbst.
Rechnungsstellung
Codefacture Yazılım A.Ş., Türkiye. EUR, USD oder GBP per Überweisung, ohne türkische Umsatzsteuer auf exportierte Leistungen.

Häufige Fragen

Das andere System hat keine API. Ist das eine Sackgasse?
Selten. Ein großer Teil funktionierender Integration sind Dateien - ein nächtlicher Export über SFTP, ein Festbreitenformat, dokumentiert in einem PDF von 2011, eine Datenbanksicht, die jemand für Sie freigibt. Das ist weniger elegant und häufig verlässlicher als eine API, die niemand pflegt. Wichtig ist, dass der Austausch explizit und überwacht ist.
Wie gehen Sie mit einer Integration um, die ausfällt?
Indem wir vorher je Integration entscheiden, was die Anwendung tun soll, und es aufschreiben. In die Queue und wiederholen, die Aktion des Nutzers scheitern lassen, oder eingeschränkt weiterlaufen - alle drei sind irgendwo richtig, und das falsche Ergebnis ist ein System, das eines davon aus Versehen wählt, weil niemand gefragt wurde.
Arbeiten Sie mit dem anderen Anbieter zusammen?
Wo es hilft ja, und wir bitten früh darum. Die meisten Integrationszeitpläne werden davon entschieden, wie lange die Gegenseite braucht, um eine Frage zu beantworten, und nicht davon, wie lange der Code braucht - also ist die erste Aufgabe meist, herauszufinden, wer diese Person ist.
Können Sie eine Integration übernehmen, die jemand anders gebaut hat?
Häufig, und es beginnt damit, herauszufinden was sie tatsächlich tut statt was sie tun sollte. Integrationen sammeln undokumentiertes Verhalten schneller an als alles andere in einer Anwendung, weil jede Korrektur unter Zeitdruck gegen ein System gemacht wird, das man nicht kontrolliert.
Anrufen+1 848 272 7583WhatsApp+90 850 308 5436E-Mailinfo@codefacture.comKontaktseite