Should Golang interface be shared among different packages of an application?
Personally I would define it in each package that uses it. It would only be a small amount of duplication but has many advantages:


It keeps the package self contained.
You mentioned that not all packages use the same method so it stops the interface getting very large.
If not every package uses each method it makes it explicit which method a package does use.