Skip to content

Commit 9565e82

Browse files
Kamal Sai DevarapalliKamal Sai Devarapalli
authored andcommitted
docs: Add concurrency models documentation
- Add detailed explanation of Gunicorn vs Async/Await vs ThreadPoolExecutor - Add quick reference guide with comparison table - Update README to clarify current implementation uses Gunicorn (not async/await) - Add links to concurrency documentation in README
1 parent 25b6a74 commit 9565e82

File tree

3 files changed

+531
-0
lines changed

3 files changed

+531
-0
lines changed

README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,8 @@ Building this project taught me a lot about backend architecture. Here are the m
129129

130130
**Event Loop Architecture**: A single thread can handle 1000+ concurrent streams when you use non-blocking I/O. This prevents blocking on network or database operations, which is perfect for I/O-heavy workloads like event stream monitoring.
131131

132+
**Note**: While async/await and event loops are powerful for I/O-bound workloads, EventStreamMonitor currently uses **Gunicorn with sync workers and threads** for simplicity and compatibility with existing Flask code. For a detailed comparison of concurrency models (Gunicorn vs Async/Await vs ThreadPoolExecutor), see [Concurrency Models Explained](docs/concurrency/CONCURRENCY_MODELS_EXPLAINED.md).
133+
132134
## Performance Metrics
133135

134136
### Before Refactoring (Thread-Per-Stream)
@@ -332,6 +334,8 @@ My research notes on Redis's threading architecture. This goes into:
332334
- [Architecture Overview](docs/architecture/MICROSERVICES_ARCHITECTURE.md) - System design details
333335
- [Redis Integration](docs/setup/REDIS_SETUP.md) - Redis caching setup
334336
- [Performance Configuration](docs/performance/PERFORMANCE_CONFIG.md) - Gunicorn and connection pooling setup
337+
- [Concurrency Models Explained](docs/concurrency/CONCURRENCY_MODELS_EXPLAINED.md) - Detailed comparison of Gunicorn vs Async/Await vs ThreadPoolExecutor
338+
- [Concurrency Quick Reference](docs/concurrency/QUICK_REFERENCE.md) - Quick comparison table and examples
335339
- [Common Challenges with Redis and Kafka](docs/paper/Common_Challenges_Redis_Kafka_Microservices.md) - Practical challenges and solutions
336340

337341
## Lessons Learned

0 commit comments

Comments
 (0)