Preface
On one gloomy fall afternoon in 2018, Boris Scholl, Yaron Schneider, and I (Haishi) crammed into a tiny phone room at Microsoft’s Redmond campus to discuss cloud application development. At the time, we were envisioning a platform-agnostic application model that would allow developers to design the topology of a distributed application in isolation from any specific platforms. The idea eventually became the Open Application Model, which described an application as a collection of services that were interconnected on a software-defined mesh.
The application model wasn’t concerned with how each of the services was written. At that time, I believed coming up with a unified programming model was too ambitious; hence, we tried to strictly define that an application model would always treat a service as a black box. However, as we discussed the idea further, something seemed to be missing.
Suddenly, Yaron jumped to the whiteboard and started doodling. Through his intangible writing, a brilliant idea surfaced, which he called Reaktive (Reactive with a k, reflecting Yaron’s deep affection for Kubernetes). The core idea of Reaktive was quite simple—to bring distributed system building blocks to user code through a sidecar container or process. We’ll explain how this elegant yet powerful idea brings refreshing thinking into distributed system design and implementation in the Introduction, but for now, back to the story.
A couple of days later Yaron came back with a prototype, and ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access