MichaelOldroyd.co.uk

Designing robust and predictable APIs with idempotency

Networks are unreliable. We’ve all experienced trouble connecting to Wi-Fi, or had a phone call drop on us abruptly. The networks connecting our servers are, on average, more reliable than consumer-level last miles like cellular or home ISPs, but given enough information moving across the wire, they’re still going to fail in exotic ways. Outages, routing problems, and other intermittent failures may be statistically unusual on the whole, but still bound to be happening all the time at some ambient background rate. To overcome this sort of inherently unreliable environment, it’s important to design APIs and clients that will be robust in the event of failure, and will predictably bring a complex integration to a consistent state despite them. Let’s take a look at a few ways to do that.

Automating Server Setup with Ansible

There’s no doubt that building a web server from scratch is a great learning experience, and one that I recommend all WordPress developers undertake. Doing so will give you a greater understanding of the various components required to serve a website, not just the code you write. It can also broaden your knowledge on wider …

An introduction to immutable infrastructure

Why you should stop managing infrastructure and start really programming it.

Decoupling the Framework

On Deprecating ServiceLocatorAware

Paying Technical Debt – How To Rescue Legacy Code through Refactoring

Advice and lessons learned on how to get a legacy codebase under control and bring it to a new level of maturity.

Comic Book FX Lettering with SVG Filters

In two previous articles I’ve talked about using SVG to make comic book speech bubbles; in this one, I’m going to look at text effects associated with lettering for sound effects, which are more broadly applicable to web design.

Cattle vs Kittens – On Cloud Platforms No One Hears the Kittens Dying

When you are enter a discussion about Cloud Computing with legacy IT people, you often (always) tell the story of handling IT infrastructure with the "Cattle vs Kittens". The story highlights the d...

Scaling CloudFlare’s Massive WAF

CloudFlare wants to provide a WAF to a very large number of customers.

Using syslog for your php applications

Linux, and other unices have an excellent system to centralize log events. This is done through syslog. This system removes the need for every application ...