<story><title>How we spent $30k in Firebase in less than 72 hours</title><url>https://hackernoon.com/how-we-spent-30k-usd-in-firebase-in-less-than-72-hours-307490bd24d</url></story><parent_chain><item><author>sciurus</author><text>When you have an unexplained performance problem, your response shouldn&amp;#x27;t be to &amp;quot;upgrade every single framework and plugin&amp;quot; that you use. The 36 hours that they spent doing this cost them $21,600 dollars on GCP and didn&amp;#x27;t solve their users&amp;#x27; problem.&lt;p&gt;Understand the services you depend on. Track the number of requests you&amp;#x27;re making to them, how long they&amp;#x27;re taking, and how many are failing. Reason through your system and look at the data when you have issues, rather than grasping at straws.</text></item></parent_chain><comment><author>Lazare</author><text>That jumped out at me too.&lt;p&gt;Obviously they were under a lot of pressure and it&amp;#x27;s easy to stand here and criticise, but...&lt;p&gt;...if my site is slowing down with load or usage, I&amp;#x27;m not sure how you make the jump to &amp;quot;I should update my UI libraries!&amp;quot;.  Angular 4 isn&amp;#x27;t getting any slower, so best case is you&amp;#x27;ve got some unknown performance bottleneck in your UI that is somehow causing 30s page load times, and which just &lt;i&gt;happens&lt;/i&gt; to be fixed in Angular 6, and you don&amp;#x27;t accidentally add any new issues when you upgrade.&lt;p&gt;Conversely, it feels like if you&amp;#x27;re struggling with &amp;quot;slow load times&amp;quot; on a SPA, the &lt;i&gt;first&lt;/i&gt; thing you&amp;#x27;d do is open the network tab and see what requests are being made, to what, how often, and how long they&amp;#x27;re taking.&lt;p&gt;Grasping at straws does seem to be the right metaphor.  (Or maybe the old chestnut about the drunk dropping his car keys in a dark parking lot, then looking for them under a streetlight, since it&amp;#x27;s too dark to find them in the parking lot?)&lt;p&gt;I&amp;#x27;m happy for the team and it sounds like things are going great for them, but wow, that was an almost fatal bit of blindness.  On the plus side, I bet everyone involved will check for inefficient database calls &lt;i&gt;first&lt;/i&gt; next time.  :)</text></comment>
<story><title>How we spent $30k in Firebase in less than 72 hours</title><url>https://hackernoon.com/how-we-spent-30k-usd-in-firebase-in-less-than-72-hours-307490bd24d</url></story><parent_chain><item><author>sciurus</author><text>When you have an unexplained performance problem, your response shouldn&amp;#x27;t be to &amp;quot;upgrade every single framework and plugin&amp;quot; that you use. The 36 hours that they spent doing this cost them $21,600 dollars on GCP and didn&amp;#x27;t solve their users&amp;#x27; problem.&lt;p&gt;Understand the services you depend on. Track the number of requests you&amp;#x27;re making to them, how long they&amp;#x27;re taking, and how many are failing. Reason through your system and look at the data when you have issues, rather than grasping at straws.</text></item></parent_chain><comment><author>sitkack</author><text>&amp;gt; Reason through your system&lt;p&gt;modern stacks have a huge opacity problem, everyone wants to be magic, and everyone fails. abstractions make reasoning harder, what tools and techniques would you suggest for doing this?&lt;p&gt;I&amp;#x27;d probably run the application in some sort of sandbox and measure the outbound request load vs inbound request load, something a containerized deployment &lt;i&gt;should&lt;/i&gt; be giving the end user (developer) as an affordance for application maintenance and visibility. Differential analysis and graphing built directly into the execution substrate.&lt;p&gt;Judge away!</text></comment>