> > > My current feeling is that external API should never include > classes/interfaces which you don't "own". Re-building the API that > already exists is pedantic, but I think it's a really good way to pay > down the maintenance debt (whenever the next metrics library "hotness" > takes off). > > +1 to this. I'd be very hesitant to tie ourselves too strongly to a specific implementation, even if it is just copying an interface.
For coprocessors specifically, I think we can start with a limited API exposing common metric types and evolve it from there. But starting simple seems key. So #2 seems like the right approach to me.