30 lines
1.4 KiB
Plaintext
30 lines
1.4 KiB
Plaintext
@startuml
|
|
!include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Context.puml
|
|
|
|
LAYOUT_LEFT_RIGHT()
|
|
|
|
title LOTTY - C4 Context
|
|
|
|
Person(product_client, "Product Client", "Web/Mobile app")
|
|
Person(analyst, "Experimenter", "Creates experiments and analyzes outcomes")
|
|
Person(approver, "Approver", "Reviews and approves experiments")
|
|
Person(admin, "Admin", "Manages users, roles, review policies")
|
|
Person(viewer, "Viewer", "Can only view")
|
|
|
|
System_Boundary(lotty_boundary, "LOTTY Backend") {
|
|
System(lotty, "LOTTY Backend", "Django + Ninja API", "Feature flags, experiments, decisions, events, reports, guardrails, notifications, conflicts")
|
|
}
|
|
|
|
System_Ext(notification_channels, "Notification Channels", "Telegram / SMTP", "Receives operational notifications")
|
|
System_Ext(observability, "Observability Stack", "VictoriaMetrics / Grafana / Loki / Tempo", "Metrics, logs, traces")
|
|
|
|
Rel(product_client, lotty, "Gets flag decisions, sends events", "HTTP/JSON")
|
|
Rel(analyst, lotty, "Configures experiments, views reports", "HTTP/JSON")
|
|
Rel(approver, lotty, "Approves/rejects experiments", "HTTP/JSON")
|
|
Rel(admin, lotty, "Manages users and review settings", "HTTP/JSON")
|
|
Rel(viewer, lotty, "Views objects on platform", "HTTP/JSON")
|
|
Rel(lotty, notification_channels, "Sends experiment/guardrail notifications", "HTTP / SMTP via Celery worker")
|
|
Rel(lotty, observability, "Exports metrics, logs, traces", "OTLP")
|
|
|
|
@enduml
|