Adaptive Architectures • Marty Pitt • GOTO 2023
HTML-код
- Опубликовано: 2 авг 2024
- This presentation was recorded at GOTO Copenhagen 2023. #GOTOcon #GOTOcph
gotocph.com
Marty Pitt - Founder at Orbital & Notional
ORIGINAL TALK TITLE
Adaptive Architectures: Reimagining API Federation & Microservices Integration
RESOURCES
/ marty_pitt
/ martypitt
linktr.ee/martypitt
Links
taxilang.org
github.com/taxilang/taxilang
orbitalhq.com
github.com/orbitalapi/orbital
ABSTRACT
As organisations adopt microservices - composing our various APIs, DBs, Queues and Functions has become critical to getting things done.
However, the glue code that we write to stitch everything together tends to be brittle, and a constant inertia to change.
This talk explores how to leverage existing API specs (OpenAPI and gRPC) to deliver composition and federation of APIs, without writing and maintaining glue code.
We'll explore how using API Specs as First Class Citizens of our enterprise integration, along with Semantic Metadata, allows us to create a mesh of services that connect on demand, and self-adapt their middleware as services around them change.
This is an in-depth exploration into Taxi - a meta-language for annotating API specs, and TaxiQL - a query language and open source orchestration engine, which can generate and adapt integration on demand. [...]
TIMECODES
00:00 Intro
02:17 Example: shop-o-pie
06:37 Glue code
12:02 APIs
13:48 Prepare to be amazed
19:14 Semantic metadata
24:48 TaxiQL
29:20 Query execution
29:42 Example: shop-o-pie continued
33:41 Summary
35:00 Outro
Download slides and read the full abstract here:
gotocph.com/2023/sessions/2989
RECOMMENDED BOOKS
Ford, Parsons, Kua & Sadalage • Building Evolutionary Architectures 2nd Edition • amzn.to/3lqr5Q8
Ford, Richards, Sadalage & Dehghani • Software Architecture: The Hard Parts • amzn.to/3QeMgjR
Mark Richards & Neal Ford • Fundamentals of Software Architecture • amzn.to/3wMBhoI
Christian Clausen • Five Lines of Code • amzn.to/3s2zjyg
/ gotocon
/ goto-
/ goto_con
/ gotoconferences
#AdaptiveArchitectures #SoftwareArchitecture #APIs #APIFederation #Microservices #OpenAPI #gRPC #SemanticMetadata #GlueCode #AutomatedGlue #ApacheKafka #Taxilang #TaxiQL #Orbital #MartyPitt
Looking for a unique learning experience?
Attend the next GOTO conference near you! Get your ticket at gotopia.tech
Sign up for updates and specials at gotopia.tech/newsletter
SUBSCRIBE TO OUR CHANNEL - new videos posted almost daily.
ruclips.net/user/GotoConf... Наука
This talk has been featured in the last issue of Tech Talks Weekly newsletter 🎉 Congrats Marty!
Great talk! Very clear and well presented. Love this concept of creating a semantic model of your data ❤
Seemed cool until it basically needs orbital to do everything. I wish i could embed the guts of orbital directly in my application instead
You can. There's an open source embeddable TaxiQL engine that you can stick in your apps. (It's JVM based, but anyone could build a TaxiQL engine in a different language)
@@martypitt6529 that's great to hear! Do you have examples of using it with an event type system like Kafka as well?
@@jscancella absolutely - Kafka is one of our main use cases in the wild. Details are in the docs (can't link here, sorry). We're all on slack, so can answer in more detail there!
@@martypitt6529 Thanks I will check it out! We aren't using Kafka yet, but I think where I work will inevitably move to a message based system in the future and I am hoping we can use this
@@martypitt6529 c. M xc. I mdc. M. A
Great talk, but like so many other tools and patterns these day, I don't really have any problem that this solves. I can't remember the last time I was impacted by anything that this would have assisted me with. Maybe an hour a year.
Clear talk but a fair bit of effort to compensate for contract lasters not using shared management of OpenAPI ref’s?
Thanks for the kind words!
Regarding (over)compensating - personally, I've found that however you approach this, you end up having to solve a mapping challenge.
Either everyone uses exactly the same request/response objects through their entire stack (which is rarely a good idea - domains model data differently for good reason), or you'd end up having to build a mapping layer from the OpenAPI facade to the internal domain model. As soon as you do this, you're back to building a hand-rolled mapping layer.
In practice, teams tends to adopt DDD, so each domain has their own version of a concept, and consumers tend to operate by aggregating the domains together. At that point, you're tightly coupling consumers to the producers, and back to mapping challenges.
Bom dia
Brilliant idea, thanks! How do you enforce the minimum privilege principle (authN and authZ) for Orbital when you don't know in advance which services it will talk to?
Hey. Great question!
We apply data access policies to data type, rather than services, and then apply them globally in the middleware.
Turns out this aligns quite nicely, as people tend to want to secure data and capabilities, so the data contract is a more natural place to declare this, than in the implementation code of a service.