Some examples of using Go interfaces to make cleaner, more testable code.
This is an example of defining your interfaces locally in each package rather than trying to do an "interface package" or providing giant interfaces from a single package that also contains the implementation.