No video

Managing External API’s in Enterprise Systems - Peter Muldoon - ACCU 2023

  Рет қаралды 850

ACCU Conference

ACCU Conference

Күн бұрын

ACCU Membership: tinyurl.com/yd...
accu.org
www.accuconfer...
Managing External API’s in Enterprise Systems - Peter Muldoon - ACCU 2023
Slides: accu.org/conf-...
Taking a real world application, it is shown how to properly encapsulate external APIs to protect the system and use modern idioms. How to manage changing requirements including decommissioning of old functionality in the real world. How abstractions can be a powerful absorber of change to limit the impact of changes on a production codebase.
Many codebases use external libraries and wrap their associated API's for application use. Once these external dependencies are entrenched and widely used in your system even small changes in the use of these external APIs can force sweeping changes across your codebase.
This presentation will take an example request API and demonstrate using sound engineering choices how to encapsulate it to provide a more efficient modern interface i.e. move-only results, futures/promise instead of callbacks, void pointers etc.
After showing the use of this API, new requirements will now emerge that require new source data from the API potentially causing large scale code changes with branching required for a gradual transition from the old data source to the new source is rolled out.
We will explore various techniques to preserve the global calling semantics and introduce localized decoupling so wide spread code changes are not needed. How abstractions can be a powerful absorber of change that limit the impact of changes on a production codebase. These codes changes are then transparent to the original callers of the API hence no calling code changes are needed. This approach will then be expanded to apply the same engineering techniques to the unit & system testing code. The final decommissioning and removal of the old code is explored and shown now to be simple and straight forwards.
Additional real world problems are then incorporated like batching, parallelization while again localizing code changes on the migration path.
This prioritizing of the migration path for introducing API use changes will lead to a novel perspective for the next time your codebase has external dependency changes imposed on it from within or without.
This is all backed up with code examples. This alternative approach has being successfully employed for real world situations in Bloomberg.
---
Peter Muldoon
Pete Muldoon has been using C++ since 1991. Pete has worked in Ireland, England and the USA and is currently employed by Bloomberg as an Engineering Lead. A consultant for over 20 years prior to joining Bloomberg, Peter has worked on a broad range of projects and code bases in a large number of companies both tech and finance. Such broad exposure has, over time, shown what works and what doesn't for large scale engineering projects. He's a proponent of elegant solutions and expressive code.
---
KZfaq Videos Filmed, Edited & Optimised by Digital Medium: events.digital...
#accuconf #programming #api

Пікірлер: 2
@SimonToth83
@SimonToth83 Жыл бұрын
I don't quite follow how the future + immediate get is any better than the blocking send. Presumably the blocking send isn't a busy loop, it will also suspend this thread and let something else run until the response arrives.
@petermuldoon5751
@petermuldoon5751 Жыл бұрын
At timepoint 16:08 , 16:58 in the video, I address this. Actions are dispatched in concurrent co-routines and if the future.get() is not ready, that co-routine is put to sleep and another co-routine that's ready will be serviced. At some point when the original co-routine has a response, it will be serviced by a thread. This allows for massive parallel fanout of concurrency for many individual actions
Magic trick 🪄😁
00:13
Andrey Grechka
Рет қаралды 45 МЛН
小丑把天使丢游泳池里#short #angel #clown
00:15
Super Beauty team
Рет қаралды 42 МЛН
Immutable Data Structures in C++ - Alistair Fisher - ACCU 2024
39:47
ACCU Conference
Рет қаралды 2,2 М.
I've been using Redis wrong this whole time...
20:53
Dreams of Code
Рет қаралды 353 М.
C++ Linkers and the One Definition Rule - Roger Orr - ACCU 2024
1:22:57
ACCU Conference
Рет қаралды 1,6 М.
"I Got Rich When I Understood This" | Jeff Bezos
8:14
Business Motiversity
Рет қаралды 11 МЛН
How This New Battery is Changing the Game
12:07
Undecided with Matt Ferrell
Рет қаралды 197 М.
I broke the 1/4-mile world record in this new HYPERCAR!
26:16
Making A Billion-Year Lego Clock
13:11
Brick Technology
Рет қаралды 7 МЛН