Schedule Reminder

:

Reminders scheduling is currently disabled.

System Architecture & Service Deprecation

The Reminders Service was designed as a distributed, asynchronous background notification pipeline built to schedule and deliver time-sensitive email notifications.

System Workflow & Architecture

The architecture separated user request submission, state persistence, background scheduling, job queueing, and email delivery into decoupled microservices:

graph TD subgraph Client ["Client Layer"] User["User Web Browser"] end subgraph Frontend ["Web API (FastAPI)"] API["/schedule_reminder API"] ETL["SQLAlchemy Model (reminders/etl.py)"] end subgraph Storage ["Database (MySQL)"] DB[("MySQL Database
'reminders' table")] end subgraph Scheduler ["Scheduler Service"] APScheduler["APScheduler Daemon
(Cron every 1 min)"] GetDue["Query Due Reminders
(sent=False, retries<3, time<=now)"] end subgraph Queue ["Message Queue (Redis)"] RQ["Redis RQ Queue
('emails')"] end subgraph Worker ["Worker Service"] RQWorker["RQ Worker Process"] SMTP["SMTP Client
(TLS/SSL Email Engine)"] end User -->|1. Submit Form| API API -->|2. Persist Record| ETL ETL -->|3. INSERT| DB APScheduler -->|4. Trigger Minute Poll| GetDue GetDue -->|5. SELECT Due| DB GetDue -->|6. Enqueue Job| RQ RQWorker -->|7. Pop Job| RQ RQWorker -->|8. Send Email| SMTP SMTP -->|9. Deliver Email| User RQWorker -->|10. Update Status| DB
Key Components