Net API Notes for 2020/12/15 - Issue 149
Season's greetings and welcome to this, the final Net API Notes newsletter for 2020. Saying that this has been a unique year is an understatement. And while there is indeed light on the horizon, there's still some time to go until we get there.
For you and yours, I wish health and (perhaps just as important) peace during these next several weeks. I hope you have the opportunity to reflect on what this year has taught you. Then, with some luck, we can meet up again in the new year a little calmer, a little wiser, and in celebration of the 150th issue milestone.
However, before we do that, let's review this, the issue's batch of notes!
(Special thanks to Vicki Boykis for use of her excellent meme)
NOTES
IN-DEPTH WITH EVENT-DRIVEN MICROSERVICES
Suppose you've taken a domain and successfully identified several bounded contexts. You recognize the benefit of abstracting the complexity behind many interfaces, but how do you get all the pieces communicating with each other with a minimal amount of coupling?
Oskar uit de Bos has a suggestion. In his Engineers' Guide to Event-Driven Architectures, he covers the pros and cons of this approach. Oskar also grounds his reasoning in foundational thinking, covering the cap theorem and how it applies to distributed systems.
It is a fantastic piece to noodle on during the holidays. Kind of like the next article:
MEET HYRUM AND POSTEL
Are you familiar with Hyrum and Postel? More importantly, did you know these gents have their own technology aphorisms?
Postel Robustness Principle says, "be conservative in what you do, but be liberal in what you accept from others".
Hyrum's Law says, "with a sufficient number of API users, it doesn't matter what the interface promises, all observable behaviors will be depended on by somebody".
David Biesack is familiar with both concepts. In his piece, Meet Hyrum and Postel, David introduces both concepts and covers their impact on API design.
PHIL STURGEON ON DEPRECATING API ENDPOINTS
When Phil isn't shooing away wifi-blocking cattle or guerilla gardening on a planetary scale, he writes API articles. His latest, appearing on the Stoplight blog, is a refresher on Deprecating API Endpoints.
Experienced API designers might assume they know all there is to this topic; develop a versioning strategy and move on. However, if that's the extent of your thinking on this, you're missing out. Phil goes to great lengths to detail the nuances of API Evolution. That's a strategy where only non-breaking changes are allowed to a particular API and, when that no longer becomes tenable, creating a new resource all together for the new hotness.
Phil also illustrates how to communicate changes within an API's OpenAPI document. Finally, there's nice coverage of deprecation and sunset headers. Lots of great stuff in this piece for new and old API hands alike.
MILESTONES
- The FTC Sued Facebook for Illegal Monopolization. Of interest to API folks is the complaint alleging, in part, that "Facebook allegedly has made key APIs available to third-party applications only on the condition that they refrain from developing competing functionalities, and from connecting with or promoting other social networking services". More analysis on the case from Kin Lane.
- APIDays Paris happened last week. At the event, AsyncAPI announced it was joining forces with Postman to define the future of APIs. I look forward to what AsyncAPI maintainers, Fran Méndez and Lukasz Gornicki, will do with Postman's support!
- Microsoft has developed and open-sourced new tools to help developers find REST-ish security and reliability issues. Called RESTler, the tools provide static analysis and fuzz testing capabilities.
- The IETF working group has begun work on a SEARCH method. Search has remained a problematic resource to model; I'd be interested if there's a clamoring need for this or if it is, perhaps, twenty years too late.
- There's a recent podcast with James Higginbotham on 'Creating a formal API program'. In it, James covers many of the high-level concepts for those managing API multiples.
- Vladik Khononov has one of the best and shortest examples of models and business domains I have seen.
- Howard Dierking has a retooled and refreshed version of his REST Fundamentals course available on Pluralsight.
- IFTTT is now charging $199-a-year to be a service on its platform. This marks an about-face for how the API integration platform has worked in the past. There's probably a whole post there about platform governance and how hosting all the things shouldn't be the goal, but, for now, I'll refer folks to Amrit Tiwana's Platform Ecosystems: Aligning Architecture, Governance and Strategy.
WRAPPING UP
Thank you to my Patreons. Perhaps this rag isn't worth your donation. Fair enough. I would, however, encourage those with the means to look around them and consider donating to those services and institutions that have been impacted by Covid-19 (and the subsequent economic downturn). In the latter part of this year, I set up recurring donations to The Internet Archive and The Markup, a nonprofit newsroom pioneering data-driven investigative journalism. I'll also be supporting the Wikimedia Foundation and several local food banks.
If there's one thing that 2020 taught me, it is that cynicism is easy. Giving one's time, energy, and money is hard. I get it. I'm still working on this myself. However, without hesitation, I'll vouch that the returns are worth it.
Please consider donating where and whatever you can. Stay safe. Happy holidays. I'll see you in 2021.
Till next time,
Matthew @libel_vox and matthewreinbold.com