<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Danilo Cordeiro (English)</title><description>Notes on system design, Java/Spring, Go and learning in public.</description><link>https://danilocordeiro.dev/</link><language>en</language><item><title>When (and how) to extract a module into a service</title><link>https://danilocordeiro.dev/en/blog/extracting-a-module-into-a-service/</link><guid isPermaLink="true">https://danilocordeiro.dev/en/blog/extracting-a-module-into-a-service/</guid><description>The real signals for leaving the modular monolith, the false ones, and a step-by-step extraction with no big bang: facade, remote adapter, events on the broker and the schema leaving last.</description><pubDate>Wed, 28 Oct 2026 00:00:00 GMT</pubDate><category>arquitetura</category><category>monolito-modular</category><category>microsservicos</category><category>java</category></item><item><title>Communication between modules: calls, in-process events, the outbox and one schema per module</title><link>https://danilocordeiro.dev/en/blog/communication-between-modules/</link><guid isPermaLink="true">https://danilocordeiro.dev/en/blog/communication-between-modules/</guid><description>Enforced boundaries solve half the problem. The other half is how modules talk without coupling: when to call, when to publish an event and how not to lose events along the way.</description><pubDate>Tue, 20 Oct 2026 00:00:00 GMT</pubDate><category>arquitetura</category><category>monolito-modular</category><category>event-driven</category><category>java</category><category>python</category></item><item><title>Boundaries your CI enforces: import-linter, Spring Modulith and internal/ in Go</title><link>https://danilocordeiro.dev/en/blog/module-boundaries-enforced-in-ci/</link><guid isPermaLink="true">https://danilocordeiro.dev/en/blog/module-boundaries-enforced-in-ci/</guid><description>A module boundary that only exists in a diagram won&apos;t survive the first tight deadline. How to make the build break when someone crosses a boundary, in Python, Java and Go.</description><pubDate>Tue, 20 Oct 2026 00:00:00 GMT</pubDate><category>arquitetura</category><category>monolito-modular</category><category>python</category><category>java</category><category>go</category></item><item><title>Splitting domains with strategic DDD: subdomains, bounded contexts and the context map</title><link>https://danilocordeiro.dev/en/blog/strategic-ddd-subdomains-bounded-contexts/</link><guid isPermaLink="true">https://danilocordeiro.dev/en/blog/strategic-ddd-subdomains-bounded-contexts/</guid><description>Before you think about modules or services, you need to know where the boundaries are. A practical guide using Evans, Vernon and Khononov, applied to a school platform.</description><pubDate>Sat, 10 Oct 2026 00:00:00 GMT</pubDate><category>arquitetura</category><category>ddd</category><category>monolito-modular</category><category>kotlin</category></item><item><title>Monorepo, modular monolith and microservices: three axes everyone mixes up</title><link>https://danilocordeiro.dev/en/blog/monorepo-modular-monolith-microservices/</link><guid isPermaLink="true">https://danilocordeiro.dev/en/blog/monorepo-modular-monolith-microservices/</guid><description>Where the code lives, how many processes you deploy and how coupled the code is are separate decisions. A real project with one codebase, three deployables and boundaries checked in CI.</description><pubDate>Thu, 08 Oct 2026 00:00:00 GMT</pubDate><category>arquitetura</category><category>monolito-modular</category><category>python</category></item><item><title>Hello, world: why I am writing</title><link>https://danilocordeiro.dev/en/blog/hello-world/</link><guid isPermaLink="true">https://danilocordeiro.dev/en/blog/hello-world/</guid><description>What you&apos;ll find here: system design, Java/Spring, Go and a log of my study routine.</description><pubDate>Wed, 07 Oct 2026 00:00:00 GMT</pubDate><category>aprendizado</category><category>meta</category></item><item><title>An 80 ms classifier in front of my voice assistant</title><link>https://danilocordeiro.dev/en/blog/laya-hermes-intent-router/</link><guid isPermaLink="true">https://danilocordeiro.dev/en/blog/laya-hermes-intent-router/</guid><description>I tested Laya, a local classifier, in Portuguese and wired it into Hermes Agent over MCP. The numbers, what went wrong and where it pays off.</description><pubDate>Wed, 07 Oct 2026 00:00:00 GMT</pubDate><category>ia</category><category>aprendizado</category></item></channel></rss>