Notification Systempublicv5

32 components24 edges8 groups13 views0 clones3 exports
new-design Users · System · system Users Desktop/Browser · System · system-2 Desktop/Browser Resources · System · system-7 Resources Mobile · System · system-3 Mobile Workers · System · system-4 Workers System · system-5 System CDN · System · system-6 CDN Logs & Analytics · System · system-8 Logs & Analytics Function Key Trigger Store auth: managed-identity auth: managed-identity auth: api-key auth: managed-identity auth: managed-identity auth: managed-identity auth: managed-identity auth: managed-identity auth: managed-identity auth: managed-identity auth: managed-identity auth: managed-identity auth: managed-identity auth: managed-identity auth: service-account auth: service-account auth: managed-identity auth: managed-identity auth: managed-identity Desktop app · Client · desktop-app Desktop app Client Mobile app · Client · mobile-app Mobile app Client SDK client · Client · sdk-client SDK client Client Web browser · Client · web-browser Web browser Client CDN · Cloudflare CDN · cloudflare-cdn CDN Cloudflare CDN Backend · Azure App Service · azure-app-service Backend Azure App Service Notifications Function · Azure Functions · azure-functions Notifications Function Azure Functions New Notifications Queue · Azure Queue Storage · azure-queue-storage New Notifications Queue Azure Queue Storage DLQ Notifications Orchestrator · Azure Functions · azure-functions Notifications Orchestrator Azure Functions Android Notifications Queue · Azure Queue Storage · azure-queue-storage Android Notifications Queue Azure Queue Storage DLQ iOS Notifications Queue · Azure Queue Storage · azure-queue-storage iOS Notifications Queue Azure Queue Storage DLQ SMS Notifications Queue · Azure Queue Storage · azure-queue-storage SMS Notifications Queue Azure Queue Storage DLQ Email Notifications Queue · Azure Queue Storage · azure-queue-storage Email Notifications Queue Azure Queue Storage DLQ Android Notifications Worker · Azure Functions · azure-functions Android Notifications Worker Azure Functions iOS Notifications Worker · Azure Functions · azure-functions iOS Notifications Worker Azure Functions SMS Notifications Worker · Azure Functions · azure-functions SMS Notifications Worker Azure Functions Email Notifications Worker · Azure Functions · azure-functions Email Notifications Worker Azure Functions APN · Apple Push Notification service · apns APN Apple Push Notification service FCM · Firebase Cloud Messaging · fcm FCM Firebase Cloud Messaging Azure Communication Services · Notification service · azure-communication-services ​ Azure Communication Services Notification service iOS · Mobile app · mobile-app iOS Mobile app Web browser · Client · web-browser Web browser Client Desktop app · Client · desktop-app Desktop app Client Notifications Database · Azure SQL Database · azure-sql Notifications Database Azure SQL Database Android · Mobile app · mobile-app Android Mobile app Other · Mobile app · mobile-app Other Mobile app Rate Limiter · Cloudflare Rate Limiting · cloudflare-rate-limiting Rate Limiter Cloudflare Rate Limiting Notification Templates · Azure Cache for Redis · azure-cache-for-redis Notification Templates Azure Cache for Redis Logs · Log Analytics workspace · azure-log-analytics Logs Log Analytics workspace Monitor · Azure Monitor · azure-monitor Monitor Azure Monitor Application Insights · Monitoring · azure-application-insights Application Insights Monitoring KUSTO · Azure Data Explorer · azure-data-explorer KUSTO Azure Data Explorer
YAML 282 lines
schemaVersion: "1"
type: "design"
id: "new-design"
nodes:
  - id: "desktop-app"
    component: "desktop-app"
    group: "system"
  - id: "mobile-app"
    component: "mobile-app"
    group: "system"
  - id: "sdk-client"
    component: "sdk-client"
  - id: "web-browser"
    component: "web-browser"
    group: "system"
  - id: "cdn"
    component: "cloudflare-cdn"
    group: "system-6"
    label: "CDN"
  - id: "backend"
    component: "azure-app-service"
    label: "Backend"
    group: "system-7"
  - id: "notifications-function"
    component: "azure-functions"
    label: "Notifications Function"
    group: "system-7"
  - id: "new-notifications-queue"
    component: "azure-queue-storage"
    label: "New Notifications Queue"
    props:
      deadLetterQueue: true
    group: "system-7"
  - id: "notifications-function-2"
    component: "azure-functions"
    label: "Notifications Orchestrator"
    group: "system-7"
  - id: "new-notifications-queue-2"
    component: "azure-queue-storage"
    label: "Android Notifications Queue"
    props:
      deadLetterQueue: true
    group: "system-7"
  - id: "new-notifications-queue-3"
    component: "azure-queue-storage"
    label: "iOS Notifications Queue"
    props:
      deadLetterQueue: true
    group: "system-7"
  - id: "new-notifications-queue-4"
    component: "azure-queue-storage"
    label: "SMS Notifications Queue"
    props:
      deadLetterQueue: true
    group: "system-7"
  - id: "new-notifications-queue-5"
    component: "azure-queue-storage"
    label: "Email Notifications Queue"
    props:
      deadLetterQueue: true
    group: "system-7"
  - id: "sms-notifications-worker"
    component: "azure-functions"
    label: "Android Notifications Worker"
    group: "system-4"
  - id: "sms-notifications-worker-2"
    component: "azure-functions"
    label: "iOS Notifications Worker"
    group: "system-4"
  - id: "sms-notifications-worker-3"
    component: "azure-functions"
    label: "SMS Notifications Worker"
    group: "system-4"
  - id: "sms-notifications-worker-4"
    component: "azure-functions"
    label: "Email Notifications Worker"
    group: "system-4"
  - id: "apn"
    component: "apns"
    label: "APN"
    group: "system-3"
  - id: "fcm"
    component: "fcm"
    label: "FCM"
    group: "system-3"
  - id: "azure-communication-services"
    component: "azure-communication-services"
    group: "system-3"
  - id: "ios"
    component: "mobile-app"
    label: "iOS"
    group: "system-5"
  - id: "web-browser-2"
    component: "web-browser"
    group: "system-2"
  - id: "desktop-app-2"
    component: "desktop-app"
    group: "system-2"
  - id: "notifications-database"
    component: "azure-sql"
    label: "Notifications Database"
    group: "system-7"
  - id: "android"
    component: "mobile-app"
    label: "Android"
    group: "system-5"
  - id: "android-2"
    component: "mobile-app"
    label: "Other"
    group: "system-5"
  - id: "rate-limiter"
    component: "cloudflare-rate-limiting"
    group: "system-6"
    label: "Rate Limiter"
  - id: "notification-templates"
    component: "azure-cache-for-redis"
    label: "Notification Templates"
    group: "system-7"
  - id: "logs"
    component: "azure-log-analytics"
    label: "Logs"
    group: "system-8"
  - id: "monitor"
    component: "azure-monitor"
    label: "Monitor"
    group: "system-8"
  - id: "azure-application-insights"
    component: "azure-application-insights"
    group: "system-8"
  - id: "kusto"
    component: "azure-data-explorer"
    label: "KUSTO"
    group: "system-8"
edges:
  - from: "notifications-function-2"
    to: "new-notifications-queue-2"
    protocol: "http"
    mode: "sync"
    auth: "managed-identity"
  - from: "sms-notifications-worker-3"
    to: "azure-communication-services"
    protocol: "http"
    mode: "sync"
    auth: "managed-identity"
  - from: "system-6"
    to: "notifications-function"
    protocol: "http"
    mode: "sync"
    label: "Function Key"
    auth: "api-key"
  - from: "backend"
    to: "notifications-function"
    protocol: "http"
    mode: "sync"
    auth: "managed-identity"
  - from: "notifications-function"
    to: "new-notifications-queue"
    protocol: "http"
    mode: "sync"
    auth: "managed-identity"
  - from: "notifications-function-2"
    to: "new-notifications-queue"
    protocol: "http"
    mode: "sync"
    auth: "managed-identity"
    label: "Trigger"
  - from: "notifications-function-2"
    to: "new-notifications-queue-4"
    protocol: "http"
    mode: "sync"
    auth: "managed-identity"
  - from: "notifications-function-2"
    to: "new-notifications-queue-5"
    protocol: "http"
    mode: "sync"
    auth: "managed-identity"
  - from: "notifications-function-2"
    to: "new-notifications-queue-3"
    protocol: "http"
    mode: "sync"
    auth: "managed-identity"
  - from: "new-notifications-queue-2"
    to: "sms-notifications-worker"
    protocol: "http"
    mode: "sync"
    auth: "managed-identity"
  - from: "new-notifications-queue-3"
    to: "sms-notifications-worker-2"
    protocol: "http"
    mode: "sync"
    auth: "managed-identity"
  - from: "new-notifications-queue-4"
    to: "sms-notifications-worker-3"
    protocol: "http"
    mode: "sync"
    auth: "managed-identity"
  - from: "new-notifications-queue-5"
    to: "sms-notifications-worker-4"
    protocol: "http"
    mode: "sync"
    auth: "managed-identity"
  - from: "sms-notifications-worker-4"
    to: "azure-communication-services"
    protocol: "http"
    mode: "sync"
    auth: "managed-identity"
  - from: "sms-notifications-worker"
    to: "fcm"
    protocol: "http"
    mode: "sync"
    auth: "service-account"
  - from: "sms-notifications-worker-2"
    to: "apn"
    protocol: "http"
    mode: "sync"
    auth: "service-account"
  - from: "azure-communication-services"
    to: "system-2"
    protocol: "http"
    mode: "sync"
  - from: "system-4"
    to: "notifications-database"
    protocol: "http"
    mode: "sync"
    auth: "managed-identity"
    label: "Store"
  - from: "system-3"
    to: "system-5"
    protocol: "http"
    mode: "sync"
  - from: "system-4"
    to: "notification-templates"
    protocol: "http"
    mode: "sync"
    auth: "managed-identity"
  - from: "system-7"
    to: "system-8"
    protocol: "http"
    mode: "sync"
    auth: "managed-identity"
  - from: "system"
    to: "system-6"
    protocol: "http"
    mode: "sync"
  - from: "sdk-client"
    to: "system-6"
    protocol: "http"
    mode: "sync"
  - from: "system-6"
    to: "backend"
    protocol: "http"
    mode: "sync"
groups:
  - id: "system"
    kind: "system"
    label: "Users"
  - id: "system-2"
    kind: "system"
    label: "Desktop/Browser"
  - id: "system-3"
    kind: "system"
    label: "Mobile"
    parent: "system-7"
  - id: "system-4"
    kind: "system"
    label: "Workers"
    parent: "system-7"
  - id: "system-5"
    kind: "system"
  - id: "system-6"
    kind: "system"
    label: "CDN"
  - id: "system-7"
    kind: "system"
    label: "Resources"
  - id: "system-8"
    kind: "system"
    label: "Logs & Analytics"
requirements:
  security:
    credentialRotationDays: 0
LayoutBoth .zip