Our co-author and principal consultant Daniel Lübke has given several presentations about our API design pattern language at industry conferences: First, he talked about the integration of our patterns into the ADDR process by James Higginbotham at the API Conference in Berlin (speaker/session information) and then at the W-JAX conference in Munich. Additionally, he discussed the importance of API lifecycle management in a second talk at W-JAX (speaker/session information).
This is the landing page for “Patterns for API Design” on this website.
We presented more seven interface refactorings at this year’s EuroPLoP conference: Extract Information Holder, Inline Information Holder, Extract Operation, Rename Operation, Make Request Conditional, Encapsulate Context Representation, and Introduce Version Identifier.
Again, we received motivating feedback and constructive criticism in the writer’s workshop. Starting from stakeholder concerns and API design smells was seen to be useful, and the detailed guidance by example appreciated. The open-access paper, to appear in the ACM Digital Library, is available for download via the publications page on the Interface Refactoring Cataloag (IRC) website.
We are delighted to see our patterns being used in industry and academia. This news item will share some updates from external sources and our own related work. And our book even won an award!
Daniel and Olaf presented full-day workshops at two conferences this spring, the API Conference 2024 in London, UK, and JAX 2024 in Mainz, Germany. Daniel will also speak at the W-JAX 2024 conference in the fall.
Five of our patterns increase the understandability of API design, according to a controlled experiment run by Stuttgart University! Well, four do; Request Bundle aims to improve performance. A paper reporting this experience has just been presented in the main research track at ICSA 2024; experiment setup and result presentation won a Distinguished Artifact Award. You can find the author’s copy (pre-print) of the paper here (PDF). Other academics use our patterns for research in the area of API design tools as well. According to Google Scholar, almost thirty papers have cited our book already.
We have also been busy with our related Interface Refactoring Catalog, a “collection of API refactorings and related architectural refactorings” that use API design patterns. Eight interface refactorings were workshopped at EuroPLoP 2023 (see our trip report), and we will present the next seven refactorings at EuroPLoP 2024 in July.
Finally, Olaf and Mirko were awarded the “Best Publication Award” 2023/2024 at their university OST – Eastern Switzerland University of Applied Sciences. The jury praised the book for its practical relevance and international impact. We are very proud of this peer recognition!
Ton Donker and his readers group have been busy. The pattern story Dutch Government & Energy Sector now covers seven additional patterns:
Do you have a pattern adoption story to share? Please get in touch with us at info@microservice-api-patterns.org.
The pattern story Dutch Government & Energy Sector by Ton Donker has been growing with the coverage of new patterns. So even if you’ve already checked it out, it’s worth revisiting!
The following patterns are now discussed in the story:
We are looking forward to more pattern adoption stories from the community. If you would like to share one, please contact us at info@microservice-api-patterns.org.
Daniel Lübke was interviewed by Henry Suryawirawan in the Tech Lead Journal Podcast #125. They covered a range of topics, from book writing to API design best practices to the Microservices Domain-Specific Language (MDSL). A transcript and lots of memorable quotes are also included, for example:
Design architecture is always about decisions, and decisions have these nasty aspects of you get something, but you lose something. If you go through the right door, you can’t go through the left door.
Daniel also gave our talk at the API Conference in London:
“API Design with Patterns: Endpoint Roles, Message Structures, Evolution Strategies” (abstract)
Last but not least, the pattern story Dutch Government & Energy Sector by Ton Donker has been growing with the coverage of new patterns. So even if you’ve already checked it out, it’s worth revisiting!
We are delighted to present our first web-exclusive pattern adoption story, contributed by our reader Ton Donker.
In the pattern story Dutch Government & Energy Sector, Ton shares some other well-known uses of the Wish List, Pagination, and Error Report patterns, as well as additional discussion points and recommended reading.
The Wish List pattern is widely used in Dutch government APIs. One implementation hint is to distinguish between different variants of Metadata Elements by prefixing them in the query string:
To distinguish between ‘real’ query parameters and the more ‘steering’ or ‘meta’ parameters like expand, fields, limit and page, we – the Dutch Energy sector API Working Group – advocate the usage of an underscore prefix, so _fields, _expand, _limit and _page to prevent misinterpretation of the function of the query parameters.
We are looking forward to more pattern adoption stories from the community. If you would like to share one, please contact us at info@microservice-api-patterns.org.
An Add Dot podcast about our book became available today! Listen to Daniel Lübke and Vaughn Vernon discussing “Writing Patterns for API Design”.
This is the landing page for the book on this website.
Olaf Zimmmermann started an article series “API Design Pattern of the Week” on Linked In, starting with Wish List. These short articles feature a subset of what is available on this site (and our book features the patterns even more comprehensively, of course).
He will present our patterns in a keynote at ZEUS 2023 in Hannover (February 16, 2023):
“APIs as Service Activators: Tackling the Hard Parts of Integration Design” (abstract)
and at the API Conference in London (April 24-27, 2023):
“API Design with Patterns: Endpoint Roles, Message Structures, Evolution Strategies” (abstract)
Three weeks ago our book was finally published. We have taken this as an opportunity to relaunch this Website under a new name: welcome to “Patterns for API Design”! We restructured the site to match the book organization of the patterns.
The menu at the top right takes you to a book landing page, to a quickstart/resources pages that collects supplemental material (such as presentations and articles), to online tutorials, to entry points into our pattern language (such as pattern filter by scope and desired quality) and to author information. Note that the graphical solution sketches are not those from the book (which of course are much nicer), but preliminary versions we provided on this Website (and our EuroPLoP papers) already.
The feedback we have received so far has been extremely gratifying. For example, see these LinkedIn posts by Vaughn Vernon and Gregor Hohpe.
Find the book and sample content at Pearson InformIT.
The book is in stores and ships! This is its landing page at InformIT.
We are delighted to report that MAP will form the core of an upcoming book called “Patterns for API Design: Simplifying Integration with Loosely Coupled Message Exchanges”, announced by the Addison Wesley Signature series editor Vaughn Vernon on Twitter and LinkedIn on July 24.
The book, expected to be available in December 2022, will feature 44 patterns as well as an introduction to API fundamentals, a domain model for APIs, and a decision model identifying pattern selection questions, options and criteria. A third part applies the patterns to three cases, our fictitious Lakeside Mutual microservices scenario as well as two real-world projects that have been running in productions for some time. The book also contains an introduction to the Microservice Domain Specific Language (MDSL) in one of three appendices (the other two provide a pattern eligibility cheat sheet and an implementation of selected Lakeside Mutual APIs).
“Patterns for API Design” is already listed at Amazon.com. Stay tuned!
Watch our fellow MAP author Daniel Lübke explain the why and how of MAP in a 24-minute video on Erik Wilde’s YouTube channel.
Pagination was one of the first patterns that we mined and then presented at EuroPLoP 2017. We have now updated it with a deeper discussion of the forces that make it difficult to deal with large response data sets, with better coverage of its variants (page-, offset-, cursor-/token-, time-based) and with additional examples and known uses.
Not workshopped at a PLoP conference yet (unlike most other patterns), but available online now are the five remaining “scoping” patterns in the Foundation Category: Public API, Community API, Solution-Internal API as well as Frontend Integration and Backend Integration.
API Description, the sixth Foundation Pattern, has already been available here for some time.
With today’s release of the Context Representation pattern, our structure category is now almost complete. The pattern provides answers on how API consumers and providers can exchange context information. “Easy”, you might say, “just use what the protocol offers to transmit that data, for example, HTTP headers”. But what do you do when multiple protocols are involved?
In a previous news item, we shared that MAP co-author Daniel Lübke presented our patterns at JAX 2021. The slides are now available for download. If you rather want to see Daniel live, the next chance is at W-JAX 2021 where he will show how to “Apply Microservice API Patterns Step by Step” (note that JAX and W-JAX are German-speaking conferences, but the slides are in English).
DPR is a public repository of methods and practices that are applicable to service analysis and design, collected and curated by Mirko Stocker and Olaf Zimmermann, two of the MAP authors. DPR now comes as a Leanpub ebook too, currently standing at 65% completion.
DPR is also available in a bundle with the Software Architecture Lecture Notes by Cesare Pautasso, another MAPer.
Cesare Pautasso, talks about his ebooks, lean publishing, microservices, the BAC theorem, API design and MAP, as well as his career so far in a featured podcast interview with Len Epp from Leanpub. Audio recording and transcript can be found here.
Congratulations from the other four MAPpers, Cesare!
Not workshopped at a PLoP conference yet (unlike most other patterns), but available here now: The four element stereotypes patterns Data Element, Id Element, Link Element, and Metadata Element. Comments and further input always welcome!
A new blog post introduces five API design principles, summarized in the backronym POINT: purposeful, style-oriented, isolated, channel-neutral, and T-shaped. A shorter version is available as a Medium story, a slightly long one as a post in the blog “The Concerned Architect”. The MAPs are featured as design option when addressing the principles; all co-authors of the pattern language contributed.
We have updated and clarified the Terms and Conditions of use for this website and our patterns. The pattern icons, for instance, can now be used under under the Creative Commons Attribution 4.0 International (CC BY 4.0) license.
Lakeside Mutual, the fictitious landscape of application frontends and microservice backends from the insurance domain, now implements more MAPs, and the documentation of already existing pattern realizations has been improved. An overview table is available in the public GitHub repository.
Our Microservice API Patterns will be presented by Daniel Lübke in a talk at the JAX conference 2021 in Mainz, Germany. If you attend the conference, come to see an introduction to the patterns and have an engaging discussion with the speaker.
Eleven responsibility patterns were workshopped, reviewed and published at the virtual EuroPLoP 2020. Please find the authors copies of the two papers on our publications page.
The patterns also appear online now too: please start exploring here. The endpoint-level pattern Data Transfer Resource lets two or more applications exchange data in a loosely coupled fashion (via API calls), and the operation responsibility State Transition Operation describes update semantics (from simple actions to entire business process flows).
A third tutorial featuring a stepwise service design method is now available. A more elaborate form of this method appears in the Design Practice Repository (DPR) that two of the MAP authors just released on GitHub.
While our responsibility patterns are under review and workshopping at the (virtual) EuroPLoP 2020, a second tutorial featuring the previously published quality patterns became available.
At long last, Olaf Zimmermann (a.ka. ZIO) has found the time to start a blog, called The Concerned Architect. Two of the first five posts on https://ozimmer.ch/blog/ feature MAP: Getting Started with MAP and MAP Retrospective and Outlook.
The MAP overview and two patterns (Embedded Entity, Linked Information Holder) are now also available in paper form “Emerging Trends, Challenges, and Experiences in DevOps and Microservice APIs”, published in post-proceedings of the Microservices 2019 conference. Note: The next edition of this conference, Microservices 2020 (Bologna, September 8 to 10, 2020) now accepts submissions from industry and academia (due date: May 15, 2020), just like the industry track of ECSA 2020.
Java Spektrum, a German magazine, features MAP in its Tool Tips column (edited by Thomas Ronzon) in the January/February 2020 issue: “Best Practice Patterns (nicht nur) für Microservices”.
The MDSL syntax and the names of some of the responsibility patterns (work in progress and not yet published) have changed. The getting started tutorial has been updated accordingly.
We have improved the website navigation further, for instance try the “back to category overview” buttons on the pattern pages such as Wish Template.
MAP and supporting tools are mentioned in a VSS seminar report called “Emerging Trends, Challenges, and Experiences in DevOps and Microservice APIs”, published as a column in IEEE Software.
Finally, our EuroPLoP 2019 paper “Interface Evolution Patterns — Balancing Compatibility and Extensibility across Service Lifecycles” has now been officially published in the ACM Digital Library. The patterns in the paper are also available on this website, for instance, have a look at Version Identifier.
There now is a Quickstart page and menu entry that collects all entry points into the language and website. The website navigation also has been improved.
We have also updated all Evolution patterns with the content of the final version of our EuroPLoP 2019 paper, as well as two quality/reference management patterns, Linked Information Holder and Embedded Entity. Finally, the Cheat Sheet has been edited for readability and consistency.
We now have started a series of MAP tutorials, starting with a basic tutorial 0 introducing the language and website organization as well as Pagination. We also improved the menu structure, and provide navigation anchors for the pattern sections (context, problem, forces, solution, etc.).
One foundation pattern and seven evolution patterns workshopped at EuroPLoP 2019, including API Description, Aggressive Obsolescence and Two in Production.
Information elements in request and response message representations often reference other ones to express containment, aggregation, or other associations. For instance, transactional data such as orders and shipments references master data such as product and customer records.
Should referenced data be embedded in message representations or should links be provided to look this data up with separate calls? We just published two new quality patterns in the Reference Management subcategory that offer answers to this question: Embedded Entity and Linked Information Holder.
IEEE Software features MAP in a blog post.
We now provide an introductory article. Other supplemental information incudes a pattern selection cheat sheet and several pattern filters.
Olaf Zimmermann presented sample patterns and website in his Microservices 2019 presentation.
A first version of this website was made available publicly.
An alpha version of the MAP website was first presented in a colloquium at Groningen University.
Five quality patterns workshopped at EuroPLoP 2018, including API Key and Wish List.
Five representation patterns workshopped at EuroPLoP 2017, including Pagination.