<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>sade.dev</title><description>Notes and developer tools on backend, system design, PostgreSQL, Redis, Laravel and AI-assisted engineering.</description><link>https://sade.dev/</link><language>en-US</language><item><title>Race Conditions and Gaps in Sequential Numbering: JIT Reservation</title><link>https://sade.dev/en/systems/race-conditions-and-gaps-in-sequential-numbering/</link><guid isPermaLink="true">https://sade.dev/en/systems/race-conditions-and-gaps-in-sequential-numbering/</guid><description>Generating legally sequential, gap-free numbers with parallel workers: the JIT reservation pattern that solves race conditions and gaps together</description><pubDate>Wed, 03 Jun 2026 00:00:00 GMT</pubDate><category>architecture</category><category>production</category><category>concurrency</category><category>queue</category><category>idempotency</category><category>System</category><author>info@muhammetsafak.com.tr (Muhammet Şafak)</author></item><item><title>When I Move to Microservices</title><link>https://sade.dev/en/journal/when-i-move-to-microservices/</link><guid isPermaLink="true">https://sade.dev/en/journal/when-i-move-to-microservices/</guid><description>The measured signals that justify moving from a monolith to a distributed architecture — and the common false reasons that say it&apos;s still too early</description><pubDate>Sat, 30 May 2026 00:00:00 GMT</pubDate><category>architecture</category><category>microservices</category><category>decisions</category><category>opinion</category><category>Journal</category><author>info@muhammetsafak.com.tr (Muhammet Şafak)</author></item><item><title>Gitflow or GitHub Flow? How I Choose</title><link>https://sade.dev/en/journal/gitflow-vs-github-flow/</link><guid isPermaLink="true">https://sade.dev/en/journal/gitflow-vs-github-flow/</guid><description>Practical criteria for picking a branching strategy by product model, version count, and deploy rhythm — and how each model breaks in the wrong place.</description><pubDate>Sat, 23 May 2026 00:00:00 GMT</pubDate><category>git</category><category>workflow</category><category>branching</category><category>decisions</category><category>opinion</category><category>Journal</category><author>info@muhammetsafak.com.tr (Muhammet Şafak)</author></item><item><title>When I Switch to Trunk-Based Development</title><link>https://sade.dev/en/journal/when-i-switch-to-trunk-based/</link><guid isPermaLink="true">https://sade.dev/en/journal/when-i-switch-to-trunk-based/</guid><description>Why release branches break for high-frequency deploy teams and how much of trunk-based is really discipline — the thresholds I cross and the ones I don&apos;t</description><pubDate>Sat, 23 May 2026 00:00:00 GMT</pubDate><category>git</category><category>workflow</category><category>deploy</category><category>decisions</category><category>opinion</category><category>Journal</category><author>info@muhammetsafak.com.tr (Muhammet Şafak)</author></item><item><title>Why I Start Projects With a Modular Monolith</title><link>https://sade.dev/en/journal/why-i-start-with-a-modular-monolith/</link><guid isPermaLink="true">https://sade.dev/en/journal/why-i-start-with-a-modular-monolith/</guid><description>The case for drawing clean module boundaries inside a single deployable app before jumping to microservices — and when I stop doing it.</description><pubDate>Sat, 23 May 2026 00:00:00 GMT</pubDate><category>architecture</category><category>modular-monolith</category><category>decisions</category><category>opinion</category><category>Journal</category><author>info@muhammetsafak.com.tr (Muhammet Şafak)</author></item><item><title>Scale Breaking Points in Data-Intensive Systems</title><link>https://sade.dev/en/systems/data-intensive-systems-breaking-points/</link><guid isPermaLink="true">https://sade.dev/en/systems/data-intensive-systems-breaking-points/</guid><description>As data load grows, where does boring architecture break? Working set, read replicas, partitioning, write load and a separate data layer — the breaking points in order, and what each one costs</description><pubDate>Wed, 20 May 2026 00:00:00 GMT</pubDate><category>postgresql</category><category>architecture</category><category>production</category><category>scaling</category><category>replication</category><category>System</category><author>info@muhammetsafak.com.tr (Muhammet Şafak)</author></item><item><title>Why I Prefer Boring Architecture</title><link>https://sade.dev/en/journal/why-boring-architecture/</link><guid isPermaLink="true">https://sade.dev/en/journal/why-boring-architecture/</guid><description>The pragmatic case for choosing proven tools over chasing new technology. This is not cowardice, it is a budget decision.</description><pubDate>Fri, 15 May 2026 00:00:00 GMT</pubDate><category>architecture</category><category>decisions</category><category>opinion</category><category>Journal</category><author>info@muhammetsafak.com.tr (Muhammet Şafak)</author></item><item><title>Namespace Isolation for a Shared Redis</title><link>https://sade.dev/en/notes/shared-redis-namespace-isolation/</link><guid isPermaLink="true">https://sade.dev/en/notes/shared-redis-namespace-isolation/</guid><description>The pattern I use to avoid key collisions and TTL accidents when a single Redis instance is shared across several projects</description><pubDate>Tue, 12 May 2026 00:00:00 GMT</pubDate><category>redis</category><category>production</category><category>architecture</category><category>Note</category><author>info@muhammetsafak.com.tr (Muhammet Şafak)</author></item><item><title>My AI-Assisted Engineering Workflow</title><link>https://sade.dev/en/journal/ai-assisted-engineering-workflow/</link><guid isPermaLink="true">https://sade.dev/en/journal/ai-assisted-engineering-workflow/</guid><description>The seven rules I follow to use Claude Code and similar agents on production code with confidence — not a skeptic, a discipline manifesto</description><pubDate>Sun, 10 May 2026 00:00:00 GMT</pubDate><category>ai-workflow</category><category>productivity</category><category>opinion</category><category>Journal</category><author>info@muhammetsafak.com.tr (Muhammet Şafak)</author></item><item><title>A PostgreSQL Backup Strategy with pgBackRest</title><link>https://sade.dev/en/notes/pgbackrest-postgresql-backup-strategy/</link><guid isPermaLink="true">https://sade.dev/en/notes/pgbackrest-postgresql-backup-strategy/</guid><description>pg_dump alone is not a backup. A PITR-capable, compressed, verifiable backup architecture with pgBackRest</description><pubDate>Fri, 08 May 2026 00:00:00 GMT</pubDate><category>postgresql</category><category>backup</category><category>production</category><category>pgbackrest</category><category>Note</category><author>info@muhammetsafak.com.tr (Muhammet Şafak)</author></item><item><title>Why Do Laravel Queues Slow Down in Production?</title><link>https://sade.dev/en/notes/laravel-queue-production-slowdown/</link><guid isPermaLink="true">https://sade.dev/en/notes/laravel-queue-production-slowdown/</guid><description>Laravel queue workers are flawless locally and slow in production. The five most common reasons developers overlook</description><pubDate>Sun, 03 May 2026 00:00:00 GMT</pubDate><category>laravel</category><category>queue</category><category>production</category><category>redis</category><category>Note</category><author>info@muhammetsafak.com.tr (Muhammet Şafak)</author></item><item><title>Multiple Projects on a Single VPS</title><link>https://sade.dev/en/systems/single-vps-multi-project-architecture/</link><guid isPermaLink="true">https://sade.dev/en/systems/single-vps-multi-project-architecture/</guid><description>One VPS, several independent apps. Deliberate minimalism over Kubernetes: user isolation, separate PHP-FPM pools, shared PostgreSQL/Redis, a plain deploy.</description><pubDate>Thu, 30 Apr 2026 00:00:00 GMT</pubDate><category>vps</category><category>architecture</category><category>nginx</category><category>postgresql</category><category>redis</category><category>System</category><author>info@muhammetsafak.com.tr (Muhammet Şafak)</author></item><item><title>Nginx + PHP-FPM Pool Separation</title><link>https://sade.dev/en/notes/nginx-php-fpm-pool-separation/</link><guid isPermaLink="true">https://sade.dev/en/notes/nginx-php-fpm-pool-separation/</guid><description>The concrete benefits of defining a separate pool per application instead of a single PHP-FPM pool when running multiple PHP apps on one VPS</description><pubDate>Sun, 26 Apr 2026 00:00:00 GMT</pubDate><category>nginx</category><category>php-fpm</category><category>production</category><category>vps</category><category>Note</category><author>info@muhammetsafak.com.tr (Muhammet Şafak)</author></item><item><title>Laravel Production Stack</title><link>https://sade.dev/en/systems/laravel-production-stack/</link><guid isPermaLink="true">https://sade.dev/en/systems/laravel-production-stack/</guid><description>A production-grade Laravel setup with Nginx + PHP-FPM + Redis + PostgreSQL + Supervisor + Horizon. Each piece job and what you lose if you drop it</description><pubDate>Wed, 22 Apr 2026 00:00:00 GMT</pubDate><category>laravel</category><category>php</category><category>production</category><category>architecture</category><category>System</category><author>info@muhammetsafak.com.tr (Muhammet Şafak)</author></item><item><title>Multiple DB Users with pgBouncer auth_query</title><link>https://sade.dev/en/notes/pgbouncer-auth-query/</link><guid isPermaLink="true">https://sade.dev/en/notes/pgbouncer-auth-query/</guid><description>A practical setup for dynamic user authentication via `auth_query` instead of `userlist.txt` when running pgBouncer</description><pubDate>Sun, 19 Apr 2026 00:00:00 GMT</pubDate><category>postgresql</category><category>pgbouncer</category><category>production</category><category>Note</category><author>info@muhammetsafak.com.tr (Muhammet Şafak)</author></item></channel></rss>