--- id: edge title: Edges --- `Edge` represents an edge between nodes. ## Basic `Edge` is an object representing a connection between nodes with some additional properties. An edge object contains three attributes: **label**, **color**, and **style**. They mirror the corresponding Graphviz edge attributes. ```python from diagrams import Cluster, Diagram, Edge from diagrams.onprem.analytics import Spark from diagrams.onprem.compute import Server from diagrams.onprem.database import PostgreSQL from diagrams.onprem.inmemory import Redis from diagrams.onprem.aggregator import Fluentd from diagrams.onprem.monitoring import Grafana, Prometheus from diagrams.onprem.network import Nginx from diagrams.onprem.queue import Kafka with Diagram(name="Advanced Web Service with On-Premises (colored)", show=False): ingress = Nginx("ingress") metrics = Prometheus("metric") metrics << Edge(color="firebrick", style="dashed") << Grafana("monitoring") with Cluster("Service Cluster"): grpcsvc = [ Server("grpc1"), Server("grpc2"), Server("grpc3")] with Cluster("Sessions HA"): primary = Redis("session") primary \ - Edge(color="brown", style="dashed") \ - Redis("replica") \ << Edge(label="collect") \ << metrics grpcsvc >> Edge(color="brown") >> primary with Cluster("Database HA"): primary = PostgreSQL("users") primary \ - Edge(color="brown", style="dotted") \ - PostgreSQL("replica") \ << Edge(label="collect") \ << metrics grpcsvc >> Edge(color="black") >> primary aggregator = Fluentd("logging") aggregator \ >> Edge(label="parse") \ >> Kafka("stream") \ >> Edge(color="black", style="bold") \ >> Spark("analytics") ingress \ >> Edge(color="darkgreen") \ << grpcsvc \ >> Edge(color="darkorange") \ >> aggregator ``` ![advanced web service with on-premises diagram colored](/img/advanced_web_service_with_on-premises_colored.png)