/Architecture

No Architecture Is Better Than Bad Architecture

- Kirill Rogovoy tl;dr: "Turns out, architecting code-introducing granular concepts, abstractions, relationships, and giving all those things names, scopes, and responsibilities has a cost. On top of that, undoing such structures is 10 times more costly than building them."

featured in #369


Fast Builds, Secure Builds. Choose Two

- Sushain Cherivirala tl;dr: "As our codebase grows in volume and variety, Stripe leverages Bazel to manage our build and test pipelines. Bazel provides a multi-language and multi-platform framework to define rules—recipes for how to build and test code in a specific stack."

featured in #365


Building A Resilient System: Our Journey To Observability At Intercom

- Kesha Mykhailov tl;dr: "We define observability as a continuous process of humans asking questions about production, and getting answers." Breaking that down: (1) Continuous process: Observability means folks observe as frequently as possible. (2) Questions about production: We wanted our definition to be wide, generic, and representative of the broad scope of workflows we cater for. (3) Answers: No tool will give you answers, only offer leads to find real answers. You have to use your own mental models of the systems you run.

featured in #362


Demystifying Software Architecture Patterns

- Rahul Garg tl;dr: "The 3 most talked about patterns are Clean, Hexagonal, and Onion Architecture... all define a loosely coupled testable system that avoids any direct dependencies in terms of implementation, yet do so using their own terminology and each with specific nuances. They all suggest approaches to make software architectures more manageable and testable." Rahul looks at each as well as key architectural takeaways applicable regardless of approach.

featured in #358


What It Took To Scale Spotify’s Marketing Efforts

- James La Broy tl;dr: "More recently, we wanted to run more campaigns throughout the year, perhaps during different holidays like Halloween or Easter. Rather than having one centralised team configuring campaigns across multiple markets, we wanted to create distributed teams local to each individual market responsible for tailoring campaigns to their respective audiences." James discusses the changes that enabled this to happen. 

featured in #354


Event Driven Architecture - 5 Pitfalls to Avoid

- Natan Silnitsky tl;dr: (1) Write to db and then fire event without atomicity. (2) Using event sourcing everywhere. (3) No context propagation. (4) Publishing events with large payloads. (5) Not handling duplicate events.

featured in #347


Under The Hood: How We Built API Versioning For LinkedIn Marketing APIs

- Nihit Purwar tl;dr: "We were releasing breaking changes almost monthly with different sunset dates – making it hard for developers to test and plan their roadmap without a predictable release schedule. Unversioned APIs also blocked customers from accessing the latest features and caused internal challenges with new feature development." Nihit's discusses how his team set out to build API versioning for LinkedIn Marketing APIs.

featured in #346


Pricing At Lyft

- Yanqiao Wang tl;dr: "In this blog post, we discuss the rideshare pricing system architectural design, modeling approaches and potential future iterations of Lyft’s pricing engine to illustrate how we tackle price optimization to achieve Lyft’s long-term mission."

featured in #342


You Don’t Need Microservices

- Matthew Spence tl;dr: "The monolith should remain the default choice for new, small, and medium-sized engineering teams. Microservices are still an option, but you should have compelling context-specific reasons to justify their use." 

featured in #339


Revert To Source

tl;dr: "In many organizations, once the work has been done to integrate a new system into the mainframe, it becomes much easier to interact with that system via the mainframe rather than repeat the integration each time." this leads to a "legacy system becoming the single point of integration for multiple systems, and hence also becoming a key upstream data source for any business processes needing that data."

featured in #335