Hey Roger! 1) I will think about a didactic example and update the blog post in a few days. 2) In my experience the Django App is not enough. Although you can create apps by affinity, the usual app structure works by similarity. Also it is challenging to refractory apps to because moving things around require changing settings and migrations. This is why I usually start a project with a core app and work until boundaries are more visible. In a complex system, inside an app, I usually need to rethink a new organization layer to group things even further to keep an affinity approach. Otherwise we end up with 10 models in a model.py and 20 views in views.py, etc because we are reproducing the original Django app structure. So I prefer to rely more in pure python packages than Django apps. 3) I don't change views.py, urls.py names. I try to make them slim by restricting what kind of code is there. Views are nothing more than HTTP handlers. Anything else is business code. I do use interactor/use case layers, service layers and data access layers.
