--- title: Building Extensible Platforms weight: 12 tags: - platformengineeringday - platform --- {{% button href="https://colocatedeventseu2026.sched.com/event/2DY7J" style="error" icon="calendar" %}}Sched Link{{% /button %}} {{% button href="https://hazelweakly.me/" style="info" icon="link" %}}Website/Homepage{{% /button %}} ## Baseline Complexityis unavoidable: May it be in platforms, physics or biology Complexity usually grows rappidly followed by a phase of making things better -> "Let's make virtual machines easier but add 500x more of them" (the story of kubernetes) TODO: Steal chart from slides ## Mthods to the madness - We want confluence (the mathematical one, not the atlassian one): If there are different paths that are semanticly the same it should not matter wich path we take - As long as we achive the same goal the specifics should not matter that much - Narrow Protocol: A narrow and slowly evolving protocol allows us to have diversification below and above the narrow point - Examples: IP Adresses and DNS haven't changed in a long time -> We can use this narrow thing to build monsters on top of - Allow everything above and below your platform to change flexibly and evolve - Vertical integration: When you're getting integrated you become valuable (again the DNS example) -> Vertical integration always beats technological capabilities - Picking the right protocol might be hard, but choosing a narrow and integrated one helps TODO: Steal confluence slide ## Extensibility - The expression Problem: The static typesafety vs type-flexibility question - So we want a platform where we can - In a typesafe manner - onboard new applications into the platform - onboard new integrations into the platform - Without requiring a end-user or platform migration/deploy - Without centralising definition of interfaces or applications - Without assuming a certain platform or applicationg architecture - So basicly: Protocolas are the new platforms - You have to be fine with people using your protocol for whatever they want -> It needs to be abusable