From 9d4bec434e216c3716dfc8849bab3969d814b568 Mon Sep 17 00:00:00 2001 From: Donne Martin Date: Sun, 2 Apr 2017 08:26:02 -0400 Subject: [PATCH] Add scaling aws OmniGraffle diagram --- .../scaling_aws/scaling_aws.graffle | Bin 0 -> 15601 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 solutions/system_design/scaling_aws/scaling_aws.graffle diff --git a/solutions/system_design/scaling_aws/scaling_aws.graffle b/solutions/system_design/scaling_aws/scaling_aws.graffle new file mode 100644 index 0000000000000000000000000000000000000000..460d1debfc040f479a58e90d9a65a4afd5e82b7f GIT binary patch literal 15601 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