Having interface such as ArticleUsecase in Go is a bad idea, since Go interfaces are ducktyped. Stick to Go practices and have interface with only one or two methods.

In addition, you’re actually going against clean architecture, and hide the domain of your application. Instead of having model orcontroller packages you should have article package that holds Article model, Article controller, and so on.

Solutions Architect @Depop, author of “Hands-on Design Patterns with Kotlin” book and “Web Development with Kotlin” course