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.
When I Grow Up I Want to Be a Platform!
Sidney Shek is an architect at Atlassian, driving large-scale initiatives that underpin the Atlassian Cloud suite. He helped oversee the transformation of Atlassian's identity systems into a massively scalable and flexible authentication/authorization platform for millions of users. He likes challenging traditional constraints and applying the latest R&D and technologies in elegant yet reliable solutions to real-world problems (functional programming principles like immutable data, type-safety, and idempotence for the win!).