First Impressions using Terragrunt at Scale

30 May 2023 - rich

DRY == “Don’t Repeat Yourself” As a programmer, this makes sense. This is not a new concept. And, most programming languages support this basic idea all the while keeping it (relatively) easy and straight-forward to implement.

But there is another idea… “Don’t let the perfect be the enemy of the good”

Perfect is the enemy of good is an aphorism meaning insistence on perfection often prevents implementation of good improvements.

The Pareto principle or 80–20 rule explains this numerically. For example, it commonly takes 20% of the full time to complete 80% of a task while to complete the last 20% of a task takes 80% of the effort.

Achieving absolute perfection may be impossible and so, as increasing effort

Terragrunt accomplishes this, but it takes some effort, some planning, some educating of your team, and a commitment to insure the process is understood by new team members.

It also exists ‘outside’ of the ‘language’ which is a bit unusual. By this, I mean, you don’t simply construct your code to be DRY… you layout and plan how and where the root module lives, you find another location for your ‘common code’ and then, through a seemingly ‘manual’ process, you implement a series of traversals through and over parent folders.

This makes sense, but if you think of a pom file, this is opinionated and mostly transparent…