Wednesday, September 15, 2021
As engineers, once we start having more than one (micro)service or product in our architecture, we think about sharing code, functionality and having seamless user experiences between systems; that’s the start of a platform! But we have so many decisions to make:
* What features are part of the platform, and when?
* Do I go lightweight with drop-in libraries that are quick to adopt or heavyweight like frameworks for a better developer (and user) experience?
* How do I make my platform extensible and maintainable?
* How can I address the classic hockey-stick adoption pattern on your services?
* How does Conway's Law apply to the platform?
In this talk we describe a number of patterns (and anti-patterns) for designing a platform we’ve seen and implemented both from industry and as part of the platform powering Atlassian Cloud.