Conway's Law Compliance in a Many Services Architecture | Greg Mefford | Code BEAM Europe 2022
This video was recorded at Code BEAM Europe 2022 - https://codesync.global/conferences/code-beam-sto-2022/ Conway's Law Compliance in a Many Services Architecture | Greg Mefford - Member of the Erlang Ecosystem Foundation ABSTRACT As your company grows and scales out, both in terms of people and software, a common pattern is to split the software up into multiple services maintained by multiple teams. Whether or not those services are micro, this leads to a lot of hard choices that you'll have to make about how to do that efficiently and maintainably. Stord has grown significantly over the past year and has used several techniques to continue to scale our engineering teams and inter-service coordination, using synchronous API calls as well as asynchronous event-processing via Kafka. This talk will present some of the things that worked well and not-so-well that we've learned from. OBJECTIVES • Share learning from building a shared HTTP client for synchronous calls as well as an asynchronous event-processing infrastructure. • Share tips for co-developing a socio-technical system that can sustain rapid growth AUDIENCE • Engineers looking for hard-earned technical lessons in service coordination • Engineering Managers who are trying to scale their teams and software quickly • Timecodes 00:00 - 01:10 - Intro 01:11 - 03:33 - Growth 03:34 - 06:11 - Organization 06:12 - 07:22 - Synchronous HTTP 07:23 - 11:15 - Sagas 11:16 - 14:54 - Event Outbox 14:55 - 16:40 - Event-Driven 16:41 - 17:57 - Handling Failures 17:58 - 18:40 - Ouroboros Events 18:41 - 24:03 - QnA • Follow us on social: Twitter: https://twitter.com/CodeBEAMio LinkedIn: https://www.linkedin.com/company/27159258 • Looking for a unique learning experience? Attend the next Code Sync conference near you! See what's coming up at: https://codesync.global • SUBSCRIBE TO OUR CHANNEL https://www.youtube.com/channel/UC47eUBNO8KBH_V8AfowOWOw See what's coming up at: https://codesync.global