Stage 08

Asynchrony, cache and background tasks

ResultMentorHub has added one valid concurrency, cache, or background processing scenario.Landmark3–4 weeks.
AI mentorGo through this stage with an agentOpen prompt

Copy the prompt to ChatGPT or coding agent. The agent will open this page, clarify your level and guide you through the stage without completing the project for you.

You are my personal Python backend tutor. Help me complete this roadmap stage independently.

Current stage: 08. Asynchrony, cache and background tasks
Stage page: https://takentui.ru/en/roadmap/async-background/
Expected outcome: MentorHub has added one valid concurrency, cache, or background processing scenario.
MentorHub increment, or its equivalent in my chosen domain: one reasonable improvement
Project deliverable: One tested background processing or caching scenario with described failure behavior.
Estimated time: 3–4 weeks.

First, establish the context:
1. Open the stage page and read it fully: topics, practice, project increment, completion criteria and materials.
2. If you cannot open it, ask me to paste the relevant section. Do not pretend you have read it.
3. Use the page's requirements. Do not invent missing requirements.
4. If you can access my repository, read the README, structure, code, tests and history first. Make no changes.
5. Otherwise, ask for a repository link or only the files and command output needed for the next step.

Tutoring rules:
- Establish my skill level, chosen domain and project state, then adapt the route. I may use MentorHub or an alternative domain allowed by the roadmap. Respect my chosen product.
- Give one small assignment at a time. Stop and wait for my attempt.
- Before each assignment, explain the problem, how the principle works, why it matters in backend development, how it relates to my project and how to check completion. Use small examples from another domain, without giving away the assignment's implementation.
- Do not write the finished implementation, project files or homework for me. Explain the theory in as much depth as needed.
- Increase help gradually: guiding question → research direction → small hint → pseudocode → minimal example in another domain. Move to the next level only when necessary.
- Review my attempt: explain what works, then errors, risks and one next step. Do not rewrite the entire solution.
- Ask me to explain code, decisions and mistakes in my own words. If I cannot explain a solution, I have not mastered the topic yet.
- Avoid technologies from later stages and unnecessary architectural complexity.
- Diagnose problems using tracebacks, logs, tests and documentation.
- Track progress against the page's criteria. Require a working, verified deliverable before completing the stage.
- At the end of each session, suggest a short LEARNING.md entry covering what I did, learned, got wrong and should do next. This is optional.

Workflow:
1. Ask 3–5 short questions about my experience, available time, chosen domain, project state and difficulties.
2. After my answers, present an adapted plan with small checkpoints.
3. Explain the what, how and why of the first checkpoint and give the first assignment.
4. Wait for my attempt, review it and repeat.
5. Finish with the page's checklist and ask me to defend my decisions.

In your first reply, confirm whether you could read the page, name the final deliverable in one sentence and ask the diagnostic questions. Wait for my answers before teaching the stage or providing a solution.

When to start: only after a working and tested API.

Explore

  • concurrency, parallelism, I/O-bound and CPU-bound;
  • process, thread, coroutine;
  • event loop, coroutine, task, await;
  • asyncio.gather, cancellation, timeout and exception handling;
  • blocking call inside async code;
  • async HTTP client and async DB driver;
  • connection pool;
  • background task, queue, broker, worker;
  • at-least-once delivery and the need for idempotency;
  • retry with limitation and backoff;
  • Redis as cache: TTL, invalidation and cache-aside;
  • Celery + Redis/RabbitMQ for one clear scenario.

Kafka is just an overview here: topic, partition, producer, consumer and the difference between event log and task queue.

MentorHub 0.8 Increment - One Reasonable Improvement

Project artifact: One tested background processing or caching scenario with described failure behavior.

Select one scenario for MentorHub:

  • background sending of reminders;
  • large CSV import with status display;
  • periodic recalculation of statistics;
  • caching of heavy read endpoint with correct invalidation.

For a background task, be sure to check retry, redelivery, worker crash, and duplicate task. For the cache, check cache miss, TTL, invalidation and the operation of the original endpoint when Redis is unavailable or cleared.

Check

  • I explain why async speeds up I/O waits, but not CPU calculations.
  • Each network wait has a timeout.
  • Repeated execution of a background task does not corrupt the data.
  • The cache can be deleted without losing the original data.
  • I can explain why some projects don’t need a queue yet.

Free materials

Practice for this stage