Skip to main content

Serverless Architecture

Alex Pearson

Alex Pearson

Platter CTO

This is the third of a five-part series on Branchstack, the approach behind Platter's latest Branching Postgres product. Read the series introduction here and read the previous post about Environmentless development here

As applications have moved away from self-hosted, on-premise machines to cloud vendors, software developers have responded by adapting their application architecture around a cloud-hosted execution model called "serverless" computing. Instead of managing the hardware requirements behind their code, developers can now build modular codebases that scale up and down with use automatically.

In this post, we'll learn about Serverless architecture as a pattern, then we'll explore how this architectural pattern is integral to Branchstack methodology.

Environmentless Development

Alex Pearson

Alex Pearson

Platter CTO

This is the second of a five-part series on Branchstack, the approach behind Platter's latest Branching Postgres product. Read the series introduction here

Software is not just code. Assumptions are made about the runtime or system that executes the code itself. State is shared across databases, third-party APIs, and other cloud-hosted services. And in most development workflows, arrangements of all of these parts are packaged in the form of "environments". Working on a new feature happens in a local "development" environment. Acceptance testing might happen in a "staging" environment. Users interact with a "production" environment. These environments are hard to manage, with drift and misconfigurations between them frequently causing outages.

But it doesn't have to be this way. Instead of accepting the errors and complexity that come from trying to manage evironments, we can get rid of the idea of environments entirely.

The Golden Path and the Branching Path

Alex Pearson

Alex Pearson

Platter CTO

This is the first of a five-part series on the Branchstack, the approach behind Platter's latest Branching Postgres product. Read part two here.

Platter was born during a breakfast of hot-sauce-drizzled chorizo and eggs 🤤. Idle banter turned to rapid-fire complaints and proposed solutions as we wondered aloud why getting software to users reliably was so difficult—much more so than writing that software in the first place. We soon realized that we were ideal partners to take on this problem together, and we've been dreaming up and working hard on solutions ever since. But our approach has changed drastically based on things we've learned along the way.

In this post, we'll talk about the problem of software delivery in general, how we built a Golden Path to solve that problem, and how Platter now instead supports any number of shortened development and deployment paths, with a set of software development principles and practices that we call the Branchstack. In following posts, we'll dive into the details with deeper analysis and real-world examples we and and our customers have encountered.

Testing Postgres and Node.js APIs with Jest

Alex Pearson

Alex Pearson

Platter CTO

Testing applications and their databases is tricky but important.

When done correctly, tests that include real database queries help to reassure developers that their features are implemented correctly across the entire stack. When done poorly, database-dependent test suites can be slow, flaky, and even dangerous to run.

In this post, we'll explore strategies for keeping data-dependent tests realistic, consistent, isolated, and fast by running tests against short-lived, isolated databases. The concepts in this post will apply to any application that depends on a database, but we'll be using Node for our runtime and Jest as our test runner to explore different strategies.