When building microservices, Nameko encourages the use of dependency providers to communicate with external resources such as databases, servers, or anything that our application depends on. By using a dependency provider, you can hide away logic that is specific only to that dependency, keeping your service level code clean and agnostic to the ins-and-outs of interfacing with this external resource.
By structuring our microservices like this, we have the ability to easily swap out or re-use dependency providers in other services.
Note
Nameko provides a list of open source dependency providers that are ready to use: http://url.marcuspen.com/nam-ext.