Reliability is a powerful tool

When are you over engineering and when are you just being smart?

Never underestimate the bandwidth of a station wagon full of tapes hurtling down the highway.

Andrew Tanenbaum (1981)

You’d think that in 2024 that a world of high-speed internet would make that out of date, but even now Amazon still offer a service to ship you a drive because it’s more reliable than trying to send it over the internet.

Reliability counts for a lot, and as we depend on these services more and more, it matters more and more. For our clients and Thinkers, they depend on the tools and services we build to go on incredible stays and do their jobs to the standard we require. The technology has to get out of the way, and if you ever find it becoming a bottleneck to how quickly you can work, you’ve picked the wrong one.

We’re always reviewing a lot of our technology stack and thinking about what we need in the next 5 or 10 years. The temptation to try and pick the latest and trendiest stack is always there, especially when that’s all you see in your social feeds. But amongst a lot of the new is a lot of wisdom of old. Companies that used to be heading in a serverless direction are now embracing the modular monolith. Some teams are now even finding themselves going back to bare metal servers over cloud because of the cost.

The serverless promise

Serverless offers a lot of hope. Minimum overhead and easy to scale, it’s ideal for a lot of scenarios. But the struggle comes when you need to test it all together. You can’t test the services locally as they depend on their product environment (if you’ve ever tried to setup DynamoDB locally you’ll feel this one), and you can’t test the whole stack together without a lot of setup.

A huge advantage of the monolith is that everything comes ready to ship. You can easily have your CI tool spin up your whole stack and then hit it with as many integration tests as you need. In the travel world we have a lot of edge cases that a lot of product teams can avoid but just not offering it. In travel, you have the real world to contend with. Our different regions have different tax and personal information requirements, and our clients have their own personal circumstances to match. Only automated tests can make sure that all the circumstances can be covered, as no client wants to find themselves worrying about their stay when they should be excited.

It’s always good to stay on top of the latest and greatest, and when we move we move – read about our migration to TypeScript. But the reliability of a testable monolith that you can run locally or on CI in minutes will beat any amount of serverless.