Socat is powerful. It can connect almost anything to anything, over almost any protocol. But it has a flaw when used for real-world service discoverability. The moment you depend on it for more than quick troubleshooting or low-level testing, you start to run into issues: fragile configurations, silent failures, and brittle links that vanish under real traffic.
Discoverability with socat sounds simple. Point from here to there. Bridge ports. Forward traffic. But when services must reliably find and talk to each other across dynamic environments, socat alone is not enough. It was built for command-line use. It is not a living, resilient registry of service endpoints.
Static IP mappings break the moment infrastructure changes. DNS resolution delays cause frustrating timeouts. TCP keep-alives can’t hide the fact that without constant orchestration, socat processes become stale. And when your environment shifts—containers restart, pods cycle, cloud instances get reallocated—what you thought was a steady link drops without warning.