<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Dirk Louwers</title><description>Notes on software, systems, and finance tooling.</description><link>https://blog.stormlantern.nl/</link><item><title>Transactional Consumer Pattern with Kafka and PostgreSQL</title><link>https://blog.stormlantern.nl/posts/2026-05-10-transactional-consumer-pattern-kafka-postgresql/</link><guid isPermaLink="true">https://blog.stormlantern.nl/posts/2026-05-10-transactional-consumer-pattern-kafka-postgresql/</guid><description>Co-locating the Kafka offset with business data in a single PostgreSQL transaction gives you exactly-once consumer semantics without a distributed transaction coordinator. A walkthrough in Spring Boot and Kotlin.</description><pubDate>Sun, 10 May 2026 00:00:00 GMT</pubDate><category>kafka</category><category>postgresql</category><category>kotlin</category><category>spring-boot</category><category>distributed-systems</category></item><item><title>Try is free in the Future</title><link>https://blog.stormlantern.nl/posts/2015-01-18-usage-of-future-try/</link><guid isPermaLink="true">https://blog.stormlantern.nl/posts/2015-01-18-usage-of-future-try/</guid><description>Wrapping a Future in a Try is usually redundant — Future already carries failure. Here&apos;s a closer look at when (if ever) the wrapper adds value.</description><pubDate>Sun, 18 Jan 2015 00:00:00 GMT</pubDate><category>scala</category></item><item><title>Peace of mind in a state of overload</title><link>https://blog.stormlantern.nl/posts/2015-01-04-peace-of-mind-in-state-of-overload/</link><guid isPermaLink="true">https://blog.stormlantern.nl/posts/2015-01-04-peace-of-mind-in-state-of-overload/</guid><description>How to combine Getting Things Done with SCRUM/Agile when you&apos;re a consultant juggling personal, employer, and client responsibilities — and the obstacles that remain.</description><pubDate>Sun, 04 Jan 2015 00:00:00 GMT</pubDate><category>agile</category><category>gtd</category><category>scrum</category><category>productivity</category></item><item><title>IntelliJ IDEA 13 SBT support</title><link>https://blog.stormlantern.nl/posts/2014-07-15-intellij-idea-13-sbt-support/</link><guid isPermaLink="true">https://blog.stormlantern.nl/posts/2014-07-15-intellij-idea-13-sbt-support/</guid><description>When IntelliJ 13&apos;s SBT support gets confused about multi-project setups, here&apos;s the one-liner that gets it back to a clean state.</description><pubDate>Tue, 15 Jul 2014 00:00:00 GMT</pubDate><category>intellij</category><category>scala</category><category>sbt</category></item><item><title>Musings on setting up a nice web application structure using Spray and ScalaJS</title><link>https://blog.stormlantern.nl/posts/2014-07-15-musings-on-setting-up-nice-web/</link><guid isPermaLink="true">https://blog.stormlantern.nl/posts/2014-07-15-musings-on-setting-up-nice-web/</guid><description>Notes on splitting frontend (ScalaJS) and backend (Spray) into separate SBT subprojects so the backend jar doesn&apos;t drag generated JS classes along.</description><pubDate>Tue, 15 Jul 2014 00:00:00 GMT</pubDate><category>spray</category><category>sbt</category><category>scalajs</category><category>scala</category></item></channel></rss>