Django has an inbuilt signal system, which is useful for decoupling components within an application. However, Django signals are synchronous in nature, meaning they execute within the same request/response cycle, potentially causing performance bottlenecks.
For modern applications, especially those handling real-time data processing, microservices, or event-driven architectures, an asynchronous event-based system for cross-app communication is essential. While third-party libraries like Celery (for task queues) and Django Channels (for WebSockets) exist, Django itself lacks a built-in async event-driven messaging system that works seamlessly across apps.
Would it be beneficial for Django to introduce native support for async signals or an event bus mechanism? Are there any recommended patterns or best practices within Django’s current ecosystem to efficiently handle async cross-app events?