Skip to content

How it works

Architecture overview

Uptime Scheduler is a SaaS platform with a lightweight agent that runs inside your AWS account. Your infrastructure data never leaves your account — only state change events are forwarded to the platform.

Your AWS Account
┌─────────────────────────────────────────────────────────┐
│ │
│ uptime:schedule tag │
│ │ │
│ ▼ │
│ CloudTrail ──► EventBridge ──► TagEventProcessor │
│ │ │
│ ▼ │
│ DynamoDB │
│ │ │
│ ▼ │
│ ScheduleManager │
│ │ │
│ ┌─────────────┴──────────┐ │
│ ▼ ▼ │
│ EventBridge SNS Topic │
│ Scheduler │ │
│ │ │ │
│ ▼ │ │
│ ActionProcessor │ │
│ (EC2 / RDS / NAT / ECS) │ │
│ │ │
└───────────────────────────────────────────────┼────────┘
Uptime Scheduler
Platform
(Dashboard, Billing)

Event flow

  1. You add uptime:schedule to an AWS resource tag
  2. CloudTrail captures the tag change event
  3. EventBridge routes it to the TagEventProcessor Lambda
  4. TagEventProcessor writes the schedule to DynamoDB and creates EventBridge Scheduler rules via ScheduleManager
  5. At the scheduled time, an ActionProcessor Lambda starts or stops the resource
  6. State changes are forwarded to the Uptime Scheduler platform via SNS so the dashboard stays in sync

What runs in your account

A single CloudFormation stack deploys:

  • Lambda functions — TagEventProcessor, ScheduleManager, action processors per resource type, EventStateProcessor, HeartbeatProcessor
  • DynamoDB table — stores schedule records and resource metadata
  • EventBridge rules — route CloudTrail events to the right Lambda
  • SQS queue — buffers action requests
  • SNS topic — forwards events to the platform
  • IAM roles — least-privilege roles for each Lambda

The stack has no EC2 instances, no persistent compute, and no VPC resources. Running costs are minimal (typically under $1/month in Lambda and DynamoDB charges).