<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Migration Retrospective on Lynx Tech Blog</title><link>https://blog.lynxflow.co/en/tags/migration-retrospective/</link><description>Recent content in Migration Retrospective on Lynx Tech Blog</description><generator>Hugo -- gohugo.io</generator><language>en</language><lastBuildDate>Mon, 24 Aug 2026 00:00:00 +0800</lastBuildDate><atom:link href="https://blog.lynxflow.co/en/tags/migration-retrospective/index.xml" rel="self" type="application/rss+xml"/><item><title>I Migrated 45 Cron Jobs into Windmill: Five Lessons from a Migration</title><link>https://blog.lynxflow.co/en/posts/windmill-cron-migration-45-jobs-2026/</link><pubDate>Mon, 24 Aug 2026 00:00:00 +0800</pubDate><guid>https://blog.lynxflow.co/en/posts/windmill-cron-migration-45-jobs-2026/</guid><description>&lt;img src="https://blog.lynxflow.co/images/windmill-migration-45-2026.png" alt="Featured image of post I Migrated 45 Cron Jobs into Windmill: Five Lessons from a Migration" /&gt;45 scheduled tasks. 25 were lying in crontab, 18 were hanging on user-level systemd timers, and 2 were pilot/split-tier tasks on the original cron. At 05:40 on August 24, 2026, I migrated them all into my self-hosted Windmill—45/45 smoke tests green, all original schedules removed.
If I&amp;rsquo;d done this sooner, I would&amp;rsquo;ve saved a lot of midnight log-diving. But the closer I got to actually doing it, the more I realized the migration itself had more pitfalls than cron ever did.</description></item></channel></rss>