Matt Rickard

Share this post

Interface Decomposition in Cloud

blog.matt-rickard.com

Discover more from Matt Rickard

Thoughts on engineering, startups, and AI.
Continue reading
Sign in

Interface Decomposition in Cloud

May 30, 2022
Share this post

Interface Decomposition in Cloud

blog.matt-rickard.com
Share

Snowflake's critical feature was disaggregating compute and storage from its' database engine. As a result, customers could scale (and pay for) storage and compute independently. That resulted in cost profiles that better tracked actual usage and zero-downtime scaling. This model couldn't have existed in an on-premise data center architecture – only in the cloud.

Snowflake's advancements have been copied and integrated – not only in competing data warehouse products but also in more traditional database interfaces like Postgres-compatible databases (AWS Aurora and Google Cloud's Alloy DB).

The playbook is to find commonly used interfaces (like ANSI SQL) and further decompose the interface into cloud primitives. Before, you'd take a complete application and lift and shift it to a cloud-managed service. You would offer two knobs – scale horizontally (more instances) and scale vertically (increase instance size, CPU+RAM).

The next generation of cloud-managed services decomposes these interfaces even further. It's still the same interface – whether that's a particular wire format, API, or ABI. However, the backend architecture might be (and most likely is) completely different. AWS Aurora or Google Cloud's Alloy DB – elastic and serverless Postgres-compatible databases. Postgres SQL compatible – but not a monolithic architecture.

Frontend frameworks have decomposed these interfaces too (although the interfaces aren't as well defined as SQL). Companies like Vercel and Gatsby have decomposed the interface into edge functions (API routes) and CDN (static files). So instead of scaling a web server that serves both static and dynamic routes (e.g., Nginx, Apache), you can scale each cloud primitive out independently.

What's next in interface decomposition? I'm not sure, but a few guesses

  • Event streaming (e.g., Kafka) + Functions

  • Compute + storage (for more applications like APM)

  • Compute + Network Filesystem

Share this post

Interface Decomposition in Cloud

blog.matt-rickard.com
Share
Previous
Next
Comments
Top
New
Community

No posts

Ready for more?

© 2023 Matt Rickard
Privacy ∙ Terms ∙ Collection notice
Start WritingGet the app
Substack is the home for great writing