Adaptive architecture - Building API Layers that Build Themselves

Abstract

Consumers do a lot of work:

producer <----+
              |
producer <----+---- consumer
              |
producer <----+

The reason change breaks something is coupling. This happens for synchronous but also for asynchronous communications.

Glue code couples producers & consumers.

There is a need of something in-between the producers and consumer that:

  • connect on demand
  • adapt to change

The fundamental is: no glue code.

APIs are not rich enough:

  • They tell us transport & structure:
    • address of a service
    • protocol & verbs
    • how to decode
    • field names in a map
  • The don’t tell us semantics:
    • what stuff means
    • how stuff relates

Semantics are the terms we use to think about data: what data means vs where to find it in a map, i.e. semantic vs structural.

We think in terms of semantic (e.g. given this email address, what is the customer’s account balance?), but we code against structure.

Semantics changes rarely but structure changes frequently.

The speaker presents a something that tries to solve this issue:

  • Taxi: semantic metadata for APIs.
  • TaxiQL: Declarative Query Language.
  • Orbital: TaxiQL Engine + Observability.