In development, external best practice is almost always used as a solution. In reality, however, finding solutions to tough problems is not so simple. In this video, Matt Andrews, illustrates that if you crawl the design space, you might end up with a hybrid solution that is possible and also works in your context. You do not have to limit yourself to one or two options only. You can watch the video below or on YouTube.
If you are interested in learning more, watch learn, iterate, adapt, and iteration is research in action.