# DevDojo Academy Blog (English) > Technical articles in English. Executable examples, current library versions, no hype. > Index: https://devdojo.academy/en/blog/ ## Posts - [ECS Fargate vs EKS for Java/Spring apps: when the Kubernetes cluster isn't worth the cost](https://devdojo.academy/en/blog/ecs-fargate-vs-eks-when-the-cluster-is-not-worth-it/): Compare cost, operations, and IAM in ECS Fargate and EKS Auto Mode to decide where to run a Spring Boot application on AWS. - [MCP Server with Execute-Verify-Stop and Tool Gating: What the Model Must Not Decide Alone](https://devdojo.academy/en/blog/mcp-server-execute-verify-stop-with-tool-gating/): Reject tools/call on the MCP server before side effects, with versioned policy, auditing, and crash-safe idempotency. Spec 2026-07-28 + Python SDK 2.1.1. - [GitHub Actions with AWS OIDC: No More Long-Lived Keys](https://devdojo.academy/en/blog/github-actions-with-aws-oidc-no-more-long-lived-keys/): Replace static GitHub Actions keys with OIDC, a restricted IAM role, a permissions boundary, and verifiable failure tests. - [Coding agent with a cost cap: token budget and circuit breaker per task](https://devdojo.academy/en/blog/coding-agent-cost-cap-token-budget-and-circuit-breaker/): Set a monthly cap, stop long tasks, and bring tokens and cost per PR into CI without exposing prompts or waiting for the bill. - [CloudFront after deployment: cache and invalidation without surprises](https://devdojo.academy/en/blog/cloudfront-after-deployment-cache-and-invalidation-without-surprises/): Configure CloudFront caching, invalidation, and OAC with private S3, predictable headers, and verifiable post-deployment commands. - [External configuration in Spring Boot 4.1: which value won](https://devdojo.academy/en/blog/external-configuration-in-spring-boot-4-1-which-value-won/): See why an environment variable, YAML, or CLI value won in Spring Boot 4.1, and find the value's origin with a minimal application. - [AssertJ in Spring Boot 4.1: Failures on the Right Field](https://devdojo.academy/en/blog/assertj-in-spring-boot-4-1-failures-on-the-right-field/): Use AssertJ with ProblemDetail and MockMvcTester to pinpoint mismatched fields in Spring Boot 4.1 tests without adding redundant dependencies. - [Idempotency and outbox in Spring Boot 4.1 without duplicate charges](https://devdojo.academy/en/blog/idempotency-and-outbox-in-spring-boot-4-1-without-duplicate-charges/): Implement Idempotency-Key and outbox in one JDBC transaction with Spring Boot 4.1, Postgres, and a real Testcontainers test. - [Technical career in 2026: the next step is not another framework](https://devdojo.academy/en/blog/technical-career-next-step-is-not-another-framework/): Trade framework chasing for verifiable seniority in systems, people, and communication, with a 30-minute diagnosis. - [StructuredTaskScope in Java 25: fan-out in Spring Boot](https://devdojo.academy/en/blog/structuredtaskscope-java-25-fan-out-in-spring-boot/): Organize per-request fan-out with StructuredTaskScope in Java 25, including cancellation, timeouts, tests, and a comparison with CompletableFuture. - [Coding agent in the repository: gates before the first PR](https://devdojo.academy/en/blog/coding-agent-repository-gates-before-first-pr/): Configure AGENTS.md, CODEOWNERS, CI, and auditing before allowing a coding agent to open pull requests in your repository. - [OpenShift 4.22 with Java 25: Containerfile and probes on restricted-v3](https://devdojo.academy/en/blog/openshift-4-22-java-25-containerfile-and-probes/): Package Spring Boot 4.1.1 with Java 25 on UBI 9, pin the image, configure probes, and validate deployment under the restricted-v3 SCC. - [Spring Boot Actuator in production: what is worth exposing](https://devdojo.academy/en/blog/spring-boot-actuator-production-endpoints-health/): Configure Spring Boot Actuator endpoints, health checks, readiness, security, and metrics without exposing sensitive production data. - [Bounded Contexts in Practice: Stop Calling Everything a Microservice](https://devdojo.academy/en/blog/bounded-contexts-in-practice-when-to-split-a-microservice/): Use domain rules, transactions, and data ownership to define boundaries before extracting services from a Spring monolith. - [Contract Testing with Pact in Spring Boot: Stop Finding Incompatibilities in Production](https://devdojo.academy/en/blog/contract-testing-pact-spring-boot/): Create consumer-provider contracts with Pact, verify them in Spring Boot, and block incompatible deployments through Pact Broker. - [Reactor and Virtual Threads: When to Parallelize in Spring Boot](https://devdojo.academy/en/blog/reactor-virtual-threads-parallelism-spring-boot/): Learn when parallel and runOn help in Reactor, why subscribeOn does not split items, and how to measure CPU, queues, and latency in Spring Boot. - [Why you reread the same code three times and miss the bug: the cost of forced familiarity](https://devdojo.academy/en/blog/review-code-without-rereading-on-autopilot/): Learn to tell visual fatigue from familiarity and try a short routine for reviewing your own code with more attention. - [Spring Boot 3 and virtual threads: what really changes in APIs with blocking I/O](https://devdojo.academy/en/blog/spring-boot-3-virtual-threads-blocking-io/): See when virtual threads help Spring MVC APIs with blocking I/O, with a benchmark, pinning diagnostics, and the path from Java 21 to 25. ## Also - Site summary: https://devdojo.academy/en/llms.txt - Certificate: https://devdojo.academy/en/certification.html