A comprehensive course on the SIM-Telemetry-JS notification delivery engine for the SIM IoT platform. This service, built with TypeScript and Node.js on Azure Functions v2, implements a fan-out pattern to deliver notifications via Email (SendGrid), Push (Firebase FCM), and WhatsApp (Graph API) across 100+ notification types. You will learn the full architecture spanning three microservices (SIM-Telemetry .NET, SIM-Telemetry-JS, and SIM-Reporting-Service), including the three-level factory pattern, Redis caching with AES-256-CBC encryption for PII, and the shared SQL Server database schema. The course traces end-to-end data flow from IoT device telemetry through Azure Service Bus queues and topics to final notification delivery. Beyond architecture, this course covers practical operational knowledge: infrastructure and deployment on Azure, CI/CD pipelines, local development setup, how to add new notification types, and production runbooks for incident response. You will also learn the testing strategy, integration test patterns, and known technical debt items that affect the system's reliability and security.
Architecture & System Overview
What is the architectural pattern used by SIM-Telemetry-JS to deliver notificati...
SIM-Telemetry-JS uses a three-level factory pattern: Level 1 is the Notification...
In the SIM-Telemetry-JS Channel enum, what is the notable issue with the `SMS` a...
Data Flow & Message Processing
What happens when the ServiceBusQueueTriggerMiddleware encounters a cache miss f...
The Azure Service Bus default retry policy allows 10 delivery attempts before mo...
Which of the following are true about error handling in SIM-Telemetry-JS channel...
Discuss: Tracing a Notification Through the System
Caching, Security & Database
Interactive: Redis Cache Lookup Simulator
Describe the two layers of PII encryption used in SIM-Telemetry-JS and why both ...
The Redis cache key `n:fn:{id}` stores user notification mappings with a TTL of ...
Why is the hardcoded AES key and static IV in `facility-user-notification-cache....
Infrastructure & Deployment
How does SIM-Telemetry-JS load its database credentials, and what Azure service ...
SIM-Telemetry-JS connects to external services via: SendGrid for email delivery,...
What is the effect of setting the `EnableSqlTelemetryStorage` feature toggle to ...
Onboarding & Development
What are the key steps required to add a new notification type to the SIM platfo...
When adding a new notification type (ID 70) with Push and Email channels, which ...
Discuss: Planning a New Notification Type
Runbooks, Testing & Operations
What is the difference between P1 (Critical) and P2 (High) severity incidents in...
The SIM-Reporting-Service's queue trigger swallows errors in a try-catch block, ...
A facility manager reports that monthly water reports stopped arriving two days ...
Discuss: Incident Triage and Resolution
Showing course outline. Copy to your collection to start learning.