Her team, CodeCraft Dynamics, was building a complex analytics microservice. Every developer had a full SQL Server instance on their local machine. It worked fine for them. But the CI/CD pipeline, running on a clean build agent, was a barren wasteland. Installing SQL Server Developer Edition on every ephemeral build agent was like hauling a grand piano up a mountain for a single song—it took ten minutes, consumed 6 GB of disk, and failed spectacularly when two builds tried to share a single instance.
She found it buried in a Stack Overflow answer from 2016, a relic with only three upvotes. A single command: SqlLocalDB.exe create "CodeCraftBuild" -s mssqllocaldb
She dug into the Windows API. LocalDB creates a named pipe for each instance, and the path length is limited. If a build agent’s temp folder path was too deep (e.g., C:\BuildAgent\_work\69\project\very\deep\path ), the pipe name exceeded 256 characters. Her team, CodeCraft Dynamics, was building a complex
Lena paused. “Containers are great. But LocalDB is lighter. It starts in milliseconds. It doesn’t require pulling images. It’s already on every Windows developer’s machine, installed by Visual Studio. And it has one superpower containers don’t.” But the CI/CD pipeline, running on a clean
She ran the pipeline. Green. Beautiful, unbroken green. The build agent’s disk footprint? 400 MB for the LocalDB binaries. No services left running. No leftovers. Just a clean, ephemeral, perfect database that lived and died inside the test run.
That night, Lena dreamed in deadlocks.
“You can attach a debugger to the same process that’s running the database engine. When a test fails, you can pause both your app code and the SQL execution at the exact same clock cycle. Try doing that with a container.”