2.5 KiB
2.5 KiB
title, weight, tags
| title | weight | tags | ||
|---|---|---|---|---|
| Building Extensible Platforms | 12 |
|
{{% 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