Client-side service discovery