DoSomething / bertly

🔗 A serverless link shortener.
https://dosome.click/wq544
MIT License
2 stars 1 forks source link

If shortening the same URL, return the same shortlink. #25

Closed DFurnes closed 6 years ago

DFurnes commented 6 years ago

This pull request replaces shorten with short_url. In addition to closing #4, it ensures Bertly always returns the same short-link if shortening the same long URL. This allows us to easily show the user their personalized link & statistics on Phoenix's "Share Drive Action" across multiple devices or page-loads, without keeping a separate table that maps signups to short-links in Phoenix.

(Note that there may be edge-cases I'm not thinking of & this will invalidate any existing short-links!)

mshmsh5000 commented 6 years ago

Aha, this also addresses #4 !

One of the only advantages I could think of with shorten is that it doesn't require a Redis lookup to shorten a URL, since it doesn't care if it's seen this URL before. I'm curious to see how this affects response time under load.

DFurnes commented 6 years ago

We were having trouble connecting the dev Lambda function to it's corresponding ElastiCache instance (it was hitting Lambda's 6 second timeout and telling us nothing of value).

Adding a 1s timeout in eaed04b confirmed that it was a Redis timeout issue, and @sheyd and I "fixed" it by switching to use a Compose instance for now! We can revisit moving both dev & prod onto ElastiCache sometime later this week if we want.

DFurnes commented 6 years ago

Did some quick load testing on this branch with Siege and performance looks the same!

Production (average 0.28 secs) ``` $ siege -c 10 -r 15 "https://dosome.click/ POST url=www.starwars.com" --header="X-BERTLY-API-KEY: ******" ** SIEGE 4.0.4 ** Preparing 10 concurrent users for battle. The server is now under siege... HTTP/1.1 200 0.15 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.16 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.18 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.19 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.20 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.20 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.21 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.22 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.26 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.17 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.15 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.38 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.23 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.20 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.19 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.24 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.15 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.25 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.14 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.15 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.17 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.16 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.15 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.18 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.16 secs: 144 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.17 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.14 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.14 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.17 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.16 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.17 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.17 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.17 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.16 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.19 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.12 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.15 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.15 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.14 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.14 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.15 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.18 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.13 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.15 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.85 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.22 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.20 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.23 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.27 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.29 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.23 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.29 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.16 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.16 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.16 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.18 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.17 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.17 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.12 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.12 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.14 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.12 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.12 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.15 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.20 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.15 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.16 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.15 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.14 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 1.12 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.11 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.14 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.16 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.18 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.16 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.15 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.12 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.13 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.16 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.38 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.25 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.22 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.13 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.12 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.15 secs: 144 bytes ==> POST https://dosome.click/ HTTP/1.1 200 1.22 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.15 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.15 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.17 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.17 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.19 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.16 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 1.34 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.19 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 1.33 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.22 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.14 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.18 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.16 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.14 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.15 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.14 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.14 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 1.40 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.22 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.26 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.17 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.27 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.18 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 1.36 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.13 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.13 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.35 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 1.31 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.12 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.15 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 1.34 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.17 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.14 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.16 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.17 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.14 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.19 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.29 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.17 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.18 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.16 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 1.22 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.16 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 1.18 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.16 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.15 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.31 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.70 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.15 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.15 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.14 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.14 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.14 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.13 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.14 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.17 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.20 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.17 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.15 secs: 144 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.17 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.78 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.26 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 2.99 secs: 142 bytes ==> POST https://dosome.click/ HTTP/1.1 200 0.20 secs: 142 bytes ==> POST https://dosome.click/ Transactions: 150 hits Availability: 100.00 % Elapsed time: 7.65 secs Data transferred: 0.02 MB Response time: 0.28 secs Transaction rate: 19.61 trans/sec Throughput: 0.00 MB/sec Concurrency: 5.50 Successful transactions: 150 Failed transactions: 0 Longest transaction: 2.99 Shortest transaction: 0.11 λ venv:bertly short-links [8s] ```
Development (this branch, average 0.26 secs) ``` $ siege -c 10 -r 15 "https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ POST url=www.starwars.com" --header="X-BERTLY-API-KEY: ******" ** SIEGE 4.0.4 ** Preparing 10 concurrent users for battle. The server is now under siege... HTTP/1.1 200 0.16 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.17 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.17 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.17 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.18 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.18 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.19 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.25 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.11 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.14 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.14 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.14 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.14 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.15 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.14 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.40 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.15 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.14 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.14 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.15 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.12 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.14 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.13 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.14 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.13 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.13 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.15 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.14 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.12 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.15 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.34 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.34 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.11 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.12 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.13 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.13 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.23 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 1.08 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 1.35 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 1.07 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 1.14 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.17 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.36 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.14 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.32 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 1.31 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.19 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.13 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.16 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.16 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.14 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.72 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 1.07 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.12 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.14 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.15 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.88 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.15 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.14 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.13 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.15 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.14 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.16 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.16 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.13 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.15 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.66 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.20 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.16 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.13 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.21 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.11 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.13 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.14 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.41 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.13 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.16 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.14 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.15 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.15 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.28 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.25 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.28 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.29 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.14 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.45 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.14 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.46 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.47 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.47 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.13 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.20 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.68 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.17 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.16 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.19 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.74 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.15 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.28 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.16 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.12 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.13 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.39 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.43 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.42 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.12 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.46 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.16 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.14 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.13 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.12 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.16 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.15 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.18 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.17 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.15 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.16 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.14 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.18 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.16 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.14 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.15 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.16 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.13 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.24 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.14 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.15 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.16 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.14 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.78 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.14 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.16 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.88 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.20 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.31 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.41 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.13 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.11 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.14 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.15 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.24 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.12 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.19 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.12 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.18 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.23 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.26 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.12 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.87 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ HTTP/1.1 200 0.12 secs: 189 bytes ==> POST https://s8b6x7cdy5.execute-api.us-east-1.amazonaws.com/dev/ Transactions: 150 hits Availability: 100.00 % Elapsed time: 4.61 secs Data transferred: 0.03 MB Response time: 0.26 secs Transaction rate: 32.54 trans/sec Throughput: 0.01 MB/sec Concurrency: 8.37 Successful transactions: 150 Failed transactions: 0 Longest transaction: 1.35 Shortest transaction: 0.11 ```
DFurnes commented 6 years ago

Merging this to unblock Phoenix Next work! Will revert if anything breaks on production, and happy to address any feedback in a follow-up pull request tomorrow.