Startup() was a blocking accept loop that log.Panic/os.Exit(1)d on failure and never stored its listener, so a host could not run the Kafka adaptor in-process nor stop it cleanly. Add Broker.Serve() error — the embed-safe form that returns errors instead of exiting, stores the listener, and returns nil on a clean Shutdown (which now closes ShutDownSignal + the listener so Accept unblocks). Startup() becomes a thin fatal wrapper over Serve() so standalone main.go is unchanged. The os import is no longer needed. Test proves Serve() returns an error (never exits) on an unreachable PubSub. Co-authored-by: Hanzo Dev <dev@hanzo.ai>