When I first finished the architecture for my Polymarket trading bot, everything looked clean on paper.

Data flowed through clear pipelines, execution was isolated, and state was fully event-driven.

Then I ran it in production.

That’s when the system stopped behaving like a design diagram and started behaving like a distributed system in the real world - noisy, inconsistent, and occasionally wrong in ways that were hard to detect.

This post breaks down the most important production issues I encountered and how they changed the way I think about building trading systems.