I implemented a custom module for my employer to do real-time search transactions against a remote web service. Then I started to think about creating another one for a similar transaction against a different remote service. And I knew there would be more to come.
The module is pretty basic on the Drupal side. Present a form, do the lookup on submit, output the results if any followed by another form. All of that boilerplate would be the same between such modules above. Only the form and the output might vary a bit, and the ultimate backend data source would be different.