We are preparing to build a large scale server application.
To model the logic effectively we're planning to use DDD, including the tactical patterns such as domain events, specifications, repositories and etc...
Is onion architecture applicable in Python? Are the abstraction abilities sufficient in Python?
Technically speaking:
I've done a little research and saw that there is no popular DI container and actually DI is considered a bad practice in Python, considering that DI is how I'm used to instantiating complex objects in the application layer it seems suspicious...
Architecturally speaking, There is no built in multithreading support in Python (CPython). The cooperative multithreading model offered by Python could be sufficient for single threaded architectures, with scale out options. or is it?
Are there more challenges and things worth considering before diving in?
The bottom line is : Did anyone have experience implementing a large scale enterprise application using DDD with Python? Or should we stick to .NET/Java and be on the safe side?