Notification Systempublicv5
32 components24 edges8 groups13 views0 clones3 exports
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