Daniel Somerfield is a seasoned software engineer and architect with broad experience within product development and IT consulting organizations. Experience includes team leadership, product management, security advocacy, and coding in too many languages. He lives with his wife and two cats in Portland, OR.
On Black Friday, a customer buys a pair of pants from a global retailer. This single purchase triggers a series of workflows across the enterprise: the JavaScript UI makes a dozen requests to a custom storefront backend, which in turn makes requests to the COTS inventory system, the third party payment processor, myriad services for sales analytics, logistics, recommendations engines, and more. Each of these systems emits dozens, even hundreds, of discrete events, aggregated custom metrics, stack traces, and JVM telemetry data. Now multiply that times hundreds or thousands of concurrent purchases. Multiply that times the thousands of large retailers that rely on a multi-tenant SaaS platform to provide their observability services. This is the world I walked into.
This talk will follow the journey, still very much in process, of an experienced software developer and DDD advocate in a world of high throughput, high availability data engineering. I’ll discuss the points where domain-centricity provides insight in this new domain, and where I’m finding dissonance. Building off a foundation provided by Nick Tune’s 2018 Strategic Autonomous Design session, I’ll discuss what patterns and heuristics seem to be working, which are not and what we’ve learned on the way.