diff --git a/available_compute.svg b/available_compute.svg
deleted file mode 100644
index f6c45da..0000000
--- a/available_compute.svg
+++ /dev/null
@@ -1,152 +0,0 @@
-
-
-
-
-
diff --git a/aws-web-app-architecture.png b/aws-web-app/aws-web-app-architecture.png
similarity index 100%
rename from aws-web-app-architecture.png
rename to aws-web-app/aws-web-app-architecture.png
diff --git a/aws-web-app-architecture.py b/aws-web-app/aws-web-app-architecture.py
similarity index 100%
rename from aws-web-app-architecture.py
rename to aws-web-app/aws-web-app-architecture.py
diff --git a/ci-cd-pipeline.png b/ci-cd-pipeline/ci-cd-pipeline.png
similarity index 100%
rename from ci-cd-pipeline.png
rename to ci-cd-pipeline/ci-cd-pipeline.png
diff --git a/ci-cd-pipeline.py b/ci-cd-pipeline/ci-cd-pipeline.py
similarity index 100%
rename from ci-cd-pipeline.py
rename to ci-cd-pipeline/ci-cd-pipeline.py
diff --git a/data-pipeline-streaming.png b/data-pipeline/data-pipeline-streaming.png
similarity index 100%
rename from data-pipeline-streaming.png
rename to data-pipeline/data-pipeline-streaming.png
diff --git a/data-pipeline-streaming.py b/data-pipeline/data-pipeline-streaming.py
similarity index 100%
rename from data-pipeline-streaming.py
rename to data-pipeline/data-pipeline-streaming.py
diff --git a/dwgu-diagram.png b/data-pipeline/dwgu-diagram.png
similarity index 100%
rename from dwgu-diagram.png
rename to data-pipeline/dwgu-diagram.png
diff --git a/dwgu-diagram.py b/data-pipeline/dwgu-diagram.py
similarity index 100%
rename from dwgu-diagram.py
rename to data-pipeline/dwgu-diagram.py
diff --git a/digitalocean-docker.py b/digitalocean-docker.py
deleted file mode 100644
index 86df28f..0000000
--- a/digitalocean-docker.py
+++ /dev/null
@@ -1,8 +0,0 @@
-from diagrams import Diagram
-from diagrams.digitalocean.compute import Docker, Containers, K8SCluster, K8SNode, K8SNodePool
-from diagrams.digitalocean.network import Vpc
-
-with Diagram("mycloudapp", filename="available_compute", outformat="svg"):
- do_compute = Docker("OnPrem Docker") >> [Containers("Front-End"), Containers("Back-End")]
- live_c = [K8SNode("Function App"),K8SNode("Cronjob"),K8SNode("Batch Processing"),K8SNode("File Delivery System")]
- do_compute >> K8SCluster("MyCloudApp-k8s") << [K8SNodePool("Control Pool, 16 vCPU"), K8SNodePool("Worker Pool, 64 vCPU")] >> Vpc("VPC") << live_c
\ No newline at end of file
diff --git a/digitalocean_compute.svg b/digitalocean_compute.svg
deleted file mode 100644
index 8cb717e..0000000
--- a/digitalocean_compute.svg
+++ /dev/null
@@ -1,104 +0,0 @@
-
-
-
-
-
diff --git a/k8s-2-replicas.py b/k8s-2-replicas.py
deleted file mode 100644
index 1ebe7e8..0000000
--- a/k8s-2-replicas.py
+++ /dev/null
@@ -1,9 +0,0 @@
-from diagrams import Diagram
-from diagrams.k8s.clusterconfig import HPA
-from diagrams.k8s.compute import Deployment, Pod, ReplicaSet
-from diagrams.k8s.network import Ingress, Service
-
-with Diagram("MyApp", show=True, filename="myapp", outformat="png"):
- net = Ingress("myapp.com:80,443") >> Service("myapp-svc:80")
- net >> [Pod("myapp-1"),
- Pod("myapp-2")] << ReplicaSet("rs") << Deployment("myapp") << HPA("hpa")
\ No newline at end of file
diff --git a/k8s-cluster-overview-azure.png b/kubernetes/k8s-cluster-overview-azure.png
similarity index 100%
rename from k8s-cluster-overview-azure.png
rename to kubernetes/k8s-cluster-overview-azure.png
diff --git a/k8s-cluster-overview.py b/kubernetes/k8s-cluster-overview.py
similarity index 100%
rename from k8s-cluster-overview.py
rename to kubernetes/k8s-cluster-overview.py
diff --git a/logging-monitoring-stack.png b/logging-monitoring-stack.png
new file mode 100644
index 0000000..bc6e1cc
Binary files /dev/null and b/logging-monitoring-stack.png differ
diff --git a/logging-monitoring/logging_monitoring_stack.py b/logging-monitoring/logging_monitoring_stack.py
new file mode 100644
index 0000000..9130849
--- /dev/null
+++ b/logging-monitoring/logging_monitoring_stack.py
@@ -0,0 +1,58 @@
+from diagrams import Diagram, Cluster, Edge
+from diagrams.aws.network import APIGateway
+from diagrams.aws.compute import Lambda
+from diagrams.aws.analytics import KinesisDataStreams, KinesisDataFirehose, AmazonOpensearchService, Athena
+from diagrams.aws.storage import S3
+from diagrams.aws.analytics import AmazonOpensearchService as OpenSearch
+from diagrams.aws.management import Cloudwatch, CloudwatchAlarm
+from diagrams.aws.integration import SNS
+from diagrams.aws.database import DDB
+from diagrams.aws.analytics import Athena
+
+
+with Diagram("Logging & Monitoring Stack", show=True, filename="logging-monitoring-stack", direction="LR"):
+ # Ingestion layer
+ with Cluster("Ingestion"):
+ api_gateway = APIGateway("API Gateway")
+ ingest_lambda = Lambda("Ingest Lambda\n(validation/enrich)")
+ kinesis = KinesisDataStreams("Kinesis Data Streams")
+
+ api_gateway >> Edge(label="HTTP logs/events") >> ingest_lambda >> kinesis
+
+ # Processing & buffering
+ with Cluster("Processing"):
+ firehose = KinesisDataFirehose("Kinesis Firehose")
+ processor_lambda = Lambda("Processor Lambda\n(aggregation/metrics)")
+
+ kinesis >> Edge(label="stream") >> processor_lambda
+ processor_lambda >> Edge(label="to firehose") >> firehose
+
+ # Storage & search
+ with Cluster("Storage & Indexing"):
+ logs_bucket = S3("S3 Logs Bucket")
+ es = OpenSearch("OpenSearch / Elasticsearch")
+ metadata_db = DDB("DynamoDB (metadata)")
+
+ firehose >> Edge(label="deliver") >> logs_bucket
+ firehose >> Edge(label="index") >> es
+
+ # Analytics
+ with Cluster("Analytics"):
+ athena = Athena("Athena")
+ logs_bucket >> athena
+
+ # Monitoring & Alerts
+ with Cluster("Monitoring"):
+ cw = Cloudwatch("CloudWatch")
+ alarm = CloudwatchAlarm("CW Alarm")
+ alerts = SNS("Alert Topic")
+
+ processor_lambda >> cw
+ es >> cw
+ metadata_db >> cw
+
+ cw >> alarm >> alerts
+
+ # Connect metadata and retention
+ processor_lambda >> metadata_db
+ logs_bucket >> metadata_db
\ No newline at end of file
diff --git a/microservices-architecture.py b/microservices/microservices-architecture.py
similarity index 100%
rename from microservices-architecture.py
rename to microservices/microservices-architecture.py
diff --git a/microservices_architecture.png b/microservices/microservices_architecture.png
similarity index 100%
rename from microservices_architecture.png
rename to microservices/microservices_architecture.png
diff --git a/my-go-app.pdf b/my-go-app.pdf
deleted file mode 100644
index a812bbf..0000000
Binary files a/my-go-app.pdf and /dev/null differ
diff --git a/myapp.png b/myapp.png
deleted file mode 100644
index df1c38a..0000000
Binary files a/myapp.png and /dev/null differ
diff --git a/py-diagrams.py b/py-diagrams.py
deleted file mode 100644
index 7339d7b..0000000
--- a/py-diagrams.py
+++ /dev/null
@@ -1,11 +0,0 @@
-from diagrams import Diagram
-from diagrams.programming.language import Go
-from diagrams.programming.flowchart import Action, Decision, Delay, InputOutput
-
-with Diagram("MyGoApp", show=True, filename="my-go-app", outformat="pdf"):
- net = Go("MyGoApp") >> Action("Fetch User Data")
- decide = Decision("Is this new user?")
- action_y = Action("Yes")
- action_n = Action("No")
- net >> decide >> action_y >> InputOutput("Proceed to Login")
- net >> decide >> action_n >> InputOutput("Register/Sign Up")
diff --git a/serverless-architecture.png b/serverless/serverless-architecture.png
similarity index 100%
rename from serverless-architecture.png
rename to serverless/serverless-architecture.png
diff --git a/serverless-architecture.py b/serverless/serverless-architecture.py
similarity index 100%
rename from serverless-architecture.py
rename to serverless/serverless-architecture.py