Interface Responsibility Patterns: Processing Resources and Operation Responsibilities

Interface Responsibility Patterns: Processing Resources and Operation Responsibilities

Abstract

Remote Application Programming Interfaces (APIs), as for instance offered in microservices architectures, are used in almost any distributed system today and are thus enablers for many digitalization efforts. It is hard to design such APIs so that they are easy and effective to use; maintaining their runtime qualities while preserving backward compatibility is equally challenging. Finding well suited granularities in terms of the architectural capabilities of endpoints and the read-write semantics of their operations are particularly important design concerns. Existing pattern languages have dealt with local APIs in object-oriented programming, with remote objects, with queue-based messaging and with service-oriented computing platforms. However, patterns or equivalent guidances for the architectural design of API endpoints, operations and their request and response message structures are still missing. In this paper, we extend our microservice API pattern language (MAP) and introduce endpoint role and operation responsibility patterns, namely Processing Resource, Computation Function, State Creation Operation, Retrieval Operation, and State Transition Operation. Known uses and examples of the patterns are drawn from public Web APIs, as well as application development and system integration projects the authors have been involved in.

Grafik Top
Authors
  • Zimmermann, Olaf
  • Lübke, Daniel
  • Zdun, Uwe
  • Pautasso, Cesare
  • Stocker, Mirko
Grafik Top
Projects
Grafik Top
Shortfacts
Category
Paper in Conference Proceedings or in Workshop Proceedings (Paper)
Event Title
European Conference on Pattern Languages of Programs 2020
Divisions
Software Architecture
Subjects
Software Engineering
Event Location
Irsee, Germany
Event Type
Conference
Event Dates
July 1-4, 2020
Date
2020
Export
Grafik Top