Containers - What Are They Good For? Local Dependencies

Containers, huh, good god What is it good for? Local Dependencies! - Edwin Starr (also disputed) In the last post, I walked through our typical development pipeline, from local dev to production: Now for most of our developers, when we start a new project, we can just continue to work on our existing host machine. The development dependencies don't change that much from project to project, and we're on projects [Read More]

Containers - What Are They Good For?

Containers, huh, good god What is it good for? Probably something? - Edwin Starr (disputed) Here at Headspring, we're seeing more and more usage of Docker for local development. Having not really touched Docker or containers, I wanted to understand how Docker could help make our lives easier for development, whether it's just local development, our CI/CD pipeline, production, anything really. I hadn't touched containers mainly because I really [Read More]

How Respawn Works

This post is mainly a reminder to myself when inevitably I forget what I was doing when designing Respawn. The general problem space is something I've covered quite a lot, but I haven't really walked through how Respawn works internally. The general problem is trying to find the correct order of deletion for tables when you have foreign key constraints. You can do something like: ALTER TABLE [Orders] NOCHECK CONSTRAINT [Read More]

Respawn 3.0 Released

Respawn, the intelligent database deleter, reached the 3.0 milestone today. In this release, Respawn now supports complex circular/cyclical relationships. When Respawn detects a cycle in the graph, it substitutes a separate deletion strategy by disabling/enabling foreign key constraints just for those tables affected. This release also adds support for Oracle, and drops support for SQL Server CE, bringing the supported databases to: SQL Server PostgreSQL MySQL/MariaDB [Read More]

Designing Microservice Messages: A Primer

When you move from monoliths to microservices, and your services aren't 100% isolated from each other, eventually you need your microservices to communicate. They need to expose their capabilities to other applications and systems, and when you get to this point, you need to design their means of communication. Microservices doesn't prescribe a specific mode of messaging (nor should it), and I personally like the presentation "Messaging and Microservices" (slides) [Read More]