I’m sorry for bringing this topic back to life, just wanted to add some context.
First - there are a lot of great ideas & suggestions here. Kudos
The important takeaway seems to be - people should use whatever makes sense to them & their teams.
As for the mentioned styleguide - this is what ended up working for us, for the past 8 years of developing Django projects. And it works on a big scale projects.
Sometimes, the service layer is not always looking like a single file with a bunch of functions, but rather like an entire Python module with well-defined interface, so we can encapsulate something complex & isolate it from the rest of the app.
We’ve even gone further creating a layer of types, between the ORM & the business logic (this is an overkill for most cases, but there are cases where it helps)
The general idea - separation of concerns - is key.
Additionally, we are constantly adding (well, at least for the past year) new things to the styleguide, as we learn them & see them in action.
There’s still a lot to add to the styleguide, of course, but we are getting there.
Right now, we are running a survey, to gather some feedback and know what to improve.
Again, kudos for the valuable feedback & points of view.
BTW, if someone wants to discuss the related ideas, I’m more than happy to do so. Perhaps it’d be best to do so on some kind of a call.