
Channels adopted as an official Django project - AtroxDev
https://www.djangoproject.com/weblog/2016/sep/09/channels-adopted-official-django-project/
======
sgt
Good to see Django moving forward. I recently started a Django based project
and I'm quite happy so far. Django + DRF.

~~~
alexbecker
Can I ask what you like about Django? As a former Django user I've become
quite jaded on the framework, and would caution you against using it if you
need data integrity, performance, or a complex front-end.

~~~
SEJeff
Data integrity is based on your datastore, not a web framework (or even an
orm), performance is relative as generally the performance issue in a web
application is the database and not the web framework, a complex framework?
Just write the front-end with react and build the backend bits in django. I
use django every day happily and fail to see any of these as reasons to
dislike it.

Now if you had mentioned heavy concurrency I might actually take your comment
a bit more seriously. Then the answer is don't use Django or python, use
golang or C/Rust.

~~~
hueving
No, data integrity is not based on your datastore alone. How the app uses it
is paramount. It's very easy to write apps that lose all sorts of data due to
concurrent requests trampling each other even if you have a DB with the best
consistency guarantees possible.

If you have an sql based system and you aren't relying heavily on
optimistic/pessimistic locking for record mutation, there is a good chance
your system has all kinds of risks to lose data.

~~~
SEJeff
Databases generally use MVCC. Frameworks like Django allow you quite a bit of
flexibility to use said MVCC via transactions. Something like this:
[https://docs.djangoproject.com/en/1.10/topics/db/transaction...](https://docs.djangoproject.com/en/1.10/topics/db/transactions/#tying-
transactions-to-http-requests)

If you're having concurrency issues in your app, it isn't due to the web
framework OR the database, it is due to poor application design. Period.

~~~
hueving
So you just repeated what I said, integrity is not based on the datastore
alone.

------
scrollaway
Glad to see this resolution. There was no need to include it in Django by
default, but having it under the official Django umbrella is excellent.

------
iKenshu
I want to learn this! Is there a good tutorial to read about this and
practice?

~~~
sciurus
The channels documentation at
[https://channels.readthedocs.io/en/latest/](https://channels.readthedocs.io/en/latest/)
is comprehensive.

Heroku has a short tutorial building a chat app at
[https://blog.heroku.com/in_deep_with_django_channels_the_fut...](https://blog.heroku.com/in_deep_with_django_channels_the_future_of_real_time_apps_in_django)

You can find more example projects at
[https://github.com/andrewgodwin/channels-
examples](https://github.com/andrewgodwin/channels-examples)

~~~
iKenshu
Thanks for the answer, I'll check all this :P

------
hood_syntax
Nice, we're already working on a project which uses Channels

