|
| 1 | +direction: right |
| 2 | +tecton_virtual_private_tecton [label: "Tecton Control-Plane AWS ACcount", color: magenta, icon: globe] { |
| 3 | + control_plane_vpc [label: "Control Plane VPC", color: purple, icon: aws-vpc] { |
| 4 | + tecton_control_plane_app_metadata [label: "Tecton Control Plane Applications", color: gray, icon: monitor] { |
| 5 | + web_ui [label: "Web UI", icon: monitor] |
| 6 | + metadata_api [label: "Metadata API", icon: code] |
| 7 | + metrics_api [label: "Metrics API", icon: prometheus] |
| 8 | + feature_serving [label: "Feature Serving", icon: service] |
| 9 | + orchestration [label: "Orchestration", icon: settings] |
| 10 | + stream_ingest_api [icon: aws-ec2, label: "Stream Ingest API"] |
| 11 | + } |
| 12 | + nlb [label: "NLB", icon: aws-elastic-load-balancing] |
| 13 | + ingest_nlb [label: "Ingest NLB", icon: aws-elastic-load-balancing] |
| 14 | + vpc_endpoint_service [label: "VPC Endpoint Service (PrivateLink)", icon: aws-vpc-endpoint] |
| 15 | + ingest_vpc_endpoint_service [label: "Ingest VPC Endpoint Service (PrivateLink)", icon: aws-vpc-endpoint] |
| 16 | + } |
| 17 | +} |
| 18 | + |
| 19 | +customer_aws_account [label: "Customer AWS Account", color: orange, icon: aws-account] { |
| 20 | + online_feature_store [label: "Online feature storage\nDynamoDB tables", icon: aws-dynamodb] |
| 21 | + cross_account_role [label: "Cross Account Role", icon: aws-iam-role] |
| 22 | + offline_feature_store [label: "Offline feature storage\nS3", icon: aws-s3] |
| 23 | + rift_environments_repo[label: "Rift Environments Repository", icon: aws-ecr] |
| 24 | + customer_vpc [label: "VPC", color: lightblue, icon: aws-vpc] { |
| 25 | + online_feature_consumption [label: "Online Feature consumption\nML App/Service", icon: monitor] |
| 26 | + offline_feature_consumption [label: "Offline Feature consumption\nDevelopment tools (Notebook)", icon: book-open] |
| 27 | + vpc_endpoint_1 [label: "VPC Endpoint", icon: aws-vpc-endpoint] |
| 28 | + } |
| 29 | + |
| 30 | + Rift VPC [color: blue, icon: aws-vpc] { |
| 31 | + rift_compute [label: "Rift Compute", icon: aws-ec2-instance] |
| 32 | + } |
| 33 | + rift_compute_role [label: "Rift Compute Role", icon: aws-iam-role] |
| 34 | + rift_compute_manager_role [label: "Rift Compute Manager Role", icon: aws-iam-role] |
| 35 | + |
| 36 | + VPC [label: "VPC", color: lightblue, icon: aws-vpc] { |
| 37 | + vpc_endpoint_2 [label: "VPC Endpoint", icon: aws-vpc-endpoint] |
| 38 | + streaming_ingest_app [icon: kafka, label: "Streaming / Realtime Application"] |
| 39 | + } |
| 40 | + |
| 41 | + |
| 42 | + emr_vpc [icon: aws-vpc, color: blue, label: "EMR VPC"] { |
| 43 | + emr_compute [icon: aws-emr, label: "EMR Compute"] |
| 44 | + } |
| 45 | + |
| 46 | + emr_spark_role [icon: aws-iam-role, label: "Spark Role"] |
| 47 | + |
| 48 | + |
| 49 | +} |
| 50 | + |
| 51 | +// connections |
| 52 | +emr_compute -> emr_spark_role |
| 53 | +emr_spark_role > offline_feature_store: Materialization |
| 54 | +emr_spark_role > online_feature_store: Materialization |
| 55 | + |
| 56 | +web_ui > nlb |
| 57 | +metadata_api > nlb |
| 58 | +metrics_api > nlb |
| 59 | + |
| 60 | +nlb > vpc_endpoint_service |
| 61 | +vpc_endpoint_service -> vpc_endpoint_1: PrivateLink Connection |
| 62 | +vpc_endpoint_1 <> online_feature_consumption: FeatureServing |
| 63 | +vpc_endpoint_1 > offline_feature_consumption: Tecton API |
| 64 | + |
| 65 | +feature_serving > nlb |
| 66 | +orchestration > cross_account_role: AssumeRole |
| 67 | +cross_account_role > offline_feature_store |
| 68 | + |
| 69 | +online_feature_consumption > online_feature_store |
| 70 | + |
| 71 | +feature_serving > cross_account_role: AssumeRole [color: Black] |
| 72 | +cross_account_role > online_feature_store |
| 73 | +offline_feature_store <> offline_feature_consumption |
| 74 | +orchestration > rift_compute_manager_role: AssumeRole |
| 75 | +orchestration > rift_environments_repo: Push Environments Images |
| 76 | +cross_account_role > emr_compute |
| 77 | +rift_environments_repo > rift_compute |
| 78 | +rift_compute_manager_role > rift_compute |
| 79 | +rift_compute > rift_compute_role |
| 80 | +rift_compute_role > offline_feature_store: Materialization |
| 81 | +rift_compute > rift_compute_role |
| 82 | +rift_compute_role > online_feature_store: Materialization |
| 83 | + |
| 84 | + |
| 85 | +stream_ingest_api > ingest_nlb |
| 86 | +ingest_nlb > ingest_vpc_endpoint_service |
| 87 | +ingest_vpc_endpoint_service <> vpc_endpoint_2 |
| 88 | +vpc_endpoint_2 < streaming_ingest_app |
| 89 | +stream_ingest_api > offline_feature_store |
| 90 | +stream_ingest_api > online_feature_store |
0 commit comments