A detailed walkthrough of a three-layer software supply chain security architecture built for a polyglot microservices environment using Java, Python, Node, and Go. The system centers on a centralized Parent File (global dependency manifest) that pins approved versions across all services, eliminating version drift and shadow dependencies. Layer I uses GitLab with a centralized manifest and a daily Trivy cron job for continuous audit. Layer II enforces security gates in Jenkins CI/CD pipelines using CrowdStrike Falcon's scanner and a Pipeline Breaker that blocks vulnerable images from reaching ECR. Layer III continuously re-scans images at rest in AWS ECR every 2–4 hours. The post also covers a structured Break Glass procedure for emergencies, SBOM generation via Falcon, a developer-friendly dependency request workflow, and hard-won lessons including transitive dependency pinning and managing false positives.

14m read timeFrom blogs.halodoc.io
Post cover image
Table of contents
The Common Problem Every Polyglot Team FacesThe Architecture at a GlanceLayer I: GitLab — Governance at the SourceLayer II: Jenkins Pipeline — Where Security Gates Get RealLayer III: AWS Cloud — Continuous Monitoring at RestWhy This Layered Model WorksSBOM Generation: Turning the Pipeline Into a Transparency EngineDeveloper Experience: The new "Dependency Request" WorkflowA few hard-won lessons stand out from running this architectureMeasuring the ImpactClosing Thoughts
7.7K Impressions