Favour creating as many of them as you wish rather than complicating a single one.
Jobs shall perform a single task
No job should do two things at a time, it will only get confusing the more you do it.
Domains shouldn’t cross
When working within a domain, strive to preserve the boundaries by not using functionality from other domains.
If you encounter a case where you should, consider Foundation, Operations and Features by rethinking your design.
Features shall not call other features
Run as many jobs and operations as you like, but never a feature.
Jobs shall not call other jobs
This is your business logic, keep it concise by avoiding nesting hell.
Operations shall not call other operations
Run as many jobs as you like, but never any other unit.
Controllers serve Features
Consistency is key for a successful architecture, and so are thin controllers to a successful MVC application.
Write code that humans can read
Machines will run it nonetheless, it is us who will suffer.