Client-side discovery pattern