Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

We ended up with 2 python layers:

-- Boring code - Business logic, CRUD, management, security, ...: django

-- Perf: JWT services on another stack (GPU, Arrow streaming, ...)

So stuff is either Boring Code or Performance Code. Async is great b/c now Boring Code can now simply await Performance Code :) Boring Code gets predictability & general ecosystem, and Performance Code does wilder stuff where we don't worry about non-perf ecosystem stuff, just perf ecosystem oddballs. We've been systematically dropping node from our backend, where we tried to have it all, and IMO too much lift for most teams.



Similarly, we ended up doing the same. Boring CRUD/CMS stuff is all in Django. That's 90% of our codebase and by far the most important. Our "user scale" endpoints are all implemented in Lua in NGINX and just read/write to Redis and data changes go into SQS and processed by Celery back in the Django app. It scales phenomenally well and we don't lose any of the great things about developing all of our core biz-critical stuff in Django.


"Async is great b/c now Boring Code can now simply await Performance Code" - that's really smart, I like that philosophy.


I like this idea. Also I am looking at a separate GraphQL stack alongside Django for flexible access points.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: