Fine-grained or coarse-grained APIs

Bildergebnis für "API" symbol

As a great fan of API-led integration technology, I want to highlight some ideas and approaches that need to be considered before starting with the design for a API network. Actually, I am working with MuleSoft and some of the technical terms refer to this integration platform. Please bear with me but I believe it is the best solution, but I am convinced that the basic idea of this article applies to other API-led integration solutions as well.

The one or the other may remember discussions from the “Platform Architect” course. We discussed in and out the benefits and pitfalls of the fine grained and coarse-grained approach. After some months working with MuleSoft my understanding of the differences and reasons for the one or the other is more transparent as it was before.

Do you believe that API design is important? I hope you do. If not, you may run into serious problems in later stages of your integration project. The simple difference between “fine-grained” and “coarse-grained” is – please allow me a first and simple approach to it – the number of APIs based on the same number of system integrations and non-functional requirements.

In other articles, the concept was introduced as the “right-grained” APIs. This implies, that there is “one” correct approach. I doubt, that this is the case. I also heard about “right-grained”. Even within one network, it could be beneficial to balance between these two and slightly change the approach depending on the requirements. Does it make sense to mix both approaches within one network? I think not. There are many reasons, which will be outlined in the next chapters. Besides, I have not seen a working network where the team used “vanilla” fine-grained and coarse-grained together and was successful in the end.

Let’s look at some formal aspects of the two approaches:

Maintainance

At first glance, coarse-grained APIs seem easier to maintain because there are not so many APIs. If you already have a relevant number of APIs and try to fight your way through the jungle, you may know what I am talking about.

Error handling

Are you using APIkit implementations? Then you may use error-handling on the level of the Router Flow. Let’s talk about a practical example. You have either only ONE SAP System API or you have created 10-30 based on the required entities or business processes. More APIs give you more flexibility in defining alerts or error flows. However, they may also lead to unexpected complexity through redundancy.

Communication

If you use the network for communication and reporting to other lines of business, then the fine-grained network brings more benefits.

The description of an API is clearer and leads towards the real business process, if there are more APIs instead of just one “Order Process API”.

Elegant development

I am not sure, whether elegant development is a KPI for your team – probably not. However, from an API developer perspective, a fine-grained approach makes the most sense, because it allows the developer to structure the flows and therefore the implementation of the API more effective and transparent. The flip-side of the coin is the possible duplication of code/components. In order to avoid this, some experience is required, not only from the developer but also from the CoE (if there is one) or the project management.

Licensing

You always need more CloudHub workers if you have more APIs, even when they are “smaller” from a functional perspective. This is a potential downside in terms license-costs. License costs are measured in vCores as you probably know. Each CloudHub worker need at least 0,1 vCore to be created.

Readability

I think it is fair to say, that smaller APIs can be easier understood and read. The more assets you have, the better you control the network from a functional perspective. Does that contradict my previous statements, that that as more API’s you have that this is harder to maintain? Not necessarily, it is just the flip side of the coin. The decision of the Mule architect is simply what counts more in the specific case. Either you want to have atomic functions which are easy to understand, or you like less API’s which are better to maintain from a technical perspective.

You have to make sure, that everybody understands the meaning and interactions between the APIs.

Performance

Performance could be the most important non-functional requirement for a project that implements an API network. The number of APIs influences the performance in several ways. The most obvious reason is latency. The more APIs, the more transformations and probably more HTTP requests in and out which creates a higher latency. If this is critical for you, this leads to fine-tuning API parameters and requires caching or intelligent ways to parallelize the integration flow.

Believe me or not, in the end, the reliability and acceptance of your integration network will depend more on other factors. However, the way towards this holy grail can be dramatically influenced by the decision how you design your API network.

API FOREVER!

Digitalagenda von US-Präsident Trump

Nein, die Headline ist nicht falsch. Jetzt zeigt sich, warum ein Blog wie dieser unabhängig sein muss. Wie sieht die digitale Agenda von US-Präsident Trump aus? Wir finden nichts dazu? Nichts nennenswertes? Das hat seine Gründe, denn Donald Trump hat keine Inhalte zu einer digitalen Agenda. Die Steuergesetzgebung, die große Konzerne wie Apple & Co. begünstigen dürfen mit Zweifel betrachtet werden. Werfen wir einen Blick auf seine Taten.

US-Präsident D. Trump in Davos auf dem Weltwirtschaftsforum 2018

US-Präsident Donald Trump in Kurzform

„America First“, Mauerbau, Strafzölle, Abschottung, Beleidigungen, wichtige Staatsdiener einfach mal feuern, aggressive Kriegsdrohungen, einseitige Begünstigung des Kapitals, Ausdünnung sozialer Leistungen, Nationalismus, angeblicher Sex mit Pornostars, Arroganz, Impulsverhalten, unkontrollierte Kommunikation, offensichtliche Lügen und so weiter. Wo endet diese Liste eigentlich? George Soros hat es bei seinem abendlichen Dinner auf den Punkt gebracht: „In den Vereinigten Staaten würde Präsident Trump gerne einen Mafia-Staat errichten, aber er schafft es nicht. Die Verfassung, andere Institutionen und die lebendige Zivilgesellschaft stehen dem entgegen“, so ist in der FAZ zu lesen.

Die Medien können Trump nicht mehr bewältigen

Diese Woche ist in USA-Today und anderen amerikanischen Medien zu lesen, dass er alleine nach Davos kam. Seine Ehefrau Melania wollte nicht mit reisen, wegen eines Sex-Skandals mit einem Pornostar, der jetzt zu Tage tritt und für den Trump dem Bericht zufolge hohe Schweigegelder gezahlt haben soll. Solche Berichte erreichen uns in Deutschland nicht mehr, weil ein Aufreger aus der Tweetmaschine von Donald Trump den nächsten jagt. Diese Nachricht ist nicht ganz irrelevant, zeigt sie doch einen Blick in die innere Struktur des mächtigsten Mannes auf diesem Planeten. Wenn Soros von der Errichtung eines Mafia-Staates spricht, ist Donald Trump demzufolge offenkundig der Mafia-Boss. So gesehen, passt sein ganzes Verhalten auch.

Trumps Digitalagenda gibt es nicht

So ist es. Das Steuerprogramm zum Wohle seiner eignen Unternehmungen kann nicht ansatzweise als Instrument in der Digitalisierung interpretiert werden. Er redet von der Arbeiterklasse, tut aber alles für sich, seine Unternehmen und begünstigt eine langfristige Entwicklung sozialer Schieflagen. Digitalagenda? Gibt es nicht!

Warum Trump nicht alles zerstören kann

Zur Faktenlage: In den USA leben 321 Mio. Menschen, in der EU 511 Mio. Menschen, in China 1,38 Mrd. Menschen. Wenn Trump America First brutal durchsetzen will, kann er ruhig gegen Deutsche Produkte stacheln, aber wir sind nicht Deutschland, sondern Teil von Europa und wir stehen für über 500 Mio. Konsumenten. Das ist ein wenig mehr, als die USA mit ihren 300 Mio. Konsumenten. Die Machtverhältnisse sind nicht ganz so trivial. Wir wollen amerikanische Produkte wie Software von Microsoft, Netzwerke von Facebook, Informationen von Google und Geräte von HP und Apple. Das ist allerdings keine Einbahnstraße, denn die Amerikaner brauchen zum Wachstum Deutsche Autos, europäische Maschinen, Anlagen zur Erzeugung erneuerbarer Energien, Anreicherung des Wettbewerbs mit der Deutschen Telekom in den USA, hochwertige Produkte aus Medizin und so weiter.

Wir brauchen einander. Das sind keine Fake News. Das sind Fakten. Wir benötigen multilaterale Beziehungen zur Entfaltung und Prosperität digitaler Lösungen. Dass die Deutschen Bosse sich gestern Abend in devoter Runde um Trump versammelten und zustimmend auf seine Fragen mit Investmentplänen antworteten, zeigt den ungebrochenen Willen der Unternehmen, Geschäfte zu machen. Ob hier ein CEO echten Charakter gezeigt hat, steht auf einem anderen Blatt.

Multilaterales Handel als Basis digitaler Entwicklungskultur

Digitale Lösungen haben es in ihrer Natur, dass sie nur dann ihre Performance entfalten, wenn sie grenzüberschreitend gestaltet, produziert und vermarktet werden. Da hilft keine Mauer und auch kein Protektionismus. Das alles steht einer digitalen Agenda und Entwicklung diametral entgegen. Mir ist es egal, ob die Republikaner oder die Demokraten regieren, aber US-Präsident Donald Trump verfolgt definitiv eine Politik von Gestern. Seine Agenda passt nicht in unsere moderne, digitale, grenzüberschreitende, international agierende Gesellschaft. Wir wollen ein transatlantisches Bündnis, Kooperation und konstruktiven respektvollen Umgang miteinander. Jeder Erstsemester in VWL/BWL hat gelernt, dass Strafzölle und Protektionismus die Zerstörer des gesellschaftlichen Wohlstandes sind.

Präsident Trump verfolgt eine seine eigene Agenda und genau das ist der Grund, wieso die Amerikaner unbedingt zu der Einsicht gelangen müssen, dass sie im eigenen Interesse mit Donald Trump langfristig Schaden nehmen. Wenn das so weiter geht, schadet er auch den US-Amerikanischen Tech-Giganten, dessen Lösungen weltweit gefragt sind und die keine Einbahnstrassen für ihre eigene Entwicklung gebrauchen können. Das wäre ein Schuss ins Knie.

By the way, wir sind 500 Millionen und werden uns das wahrscheinlich nicht so einfach gefallen lassen, wie es gestern von NOrbert Röttgen (CDU) zu hören war: „Wir werden nicht einfach unsere Backe hinhalten, denn wir sind auch über 500 Millionen Menschen und wir werden unsere Interessen wahrnehmen“. Er hat sehr deutlich gesagt, dass wir in der Lage sind, Spannungen auszuhalten, aber wir werden als Europäer nicht alles einfach so hin nehmen und kassieren.

Was am Ende bleibt

Wir, die Menschen, die für Innovation, Zukunft und Digitalisierung der globalen Gesellschaft stehen, sind gefordert, unablässig weiter an der Transformation der Menschheit zu arbeiten, auch denn, wenn ein Trumpeltier durch die Welt marschiert. Protektionismus, Kleinstaaterei und Grenzwälle stehen der Digitalisierung diametral entgegen. Wer Wachstum und Wohlstand will, muss sich offen aufstellen und gemeinsame Interessen suchen, statt „America First“ raus zu haun.

Was Trump in seiner Davos-Ansprache von sich gab, ist eine Sache. Viel wichtiger ist, was er nicht sagte.