Improving Schedule Beta and API throughput

By - 26 Jul 2019

The Data Must Flow!

As we move forward with ironing out all the details necessary to make Schedule Beta ready for primetime, we have made great improvements to the responsiveness of the frontend, which meant that the API response times were slowly becoming the bottleneck.

To address this problem systematically, we’ve been monitoring critical paths for indications on what are the biggest bottlenecks in our system. We also included feedback from our users to determine which parts of the system need improvement in order to deliver the largest boost to loading speeds and responsiveness.

To that end, we’ve just released improvements to the API and Schedule Beta which should significantly improve responsiveness when creating, updating or deleting bookings and downtimes across the board. This was possible by speeding up the resources API endpoint, which would sometimes take up to 25 seconds to respond for very large accounts. It now takes just 100 milliseconds to complete with more optimisations already planned to be deployed soon.

We’ve also moved a lot of the client-side processing in Schedule Beta into dedicated web worker modules, which help alleviate the work on the main thread and improve the smoothness and responsiveness of the app on mobile and desktop devices.

Here’s a quick summary of things deployed since the last update:

  • 🏎 We shipped multiple improvements to the response times for API users (including Schedule Beta).
  • 🛠 We’ve improved the way we handle keyboard events in the forms for Schedule Beta. It should now be much easier to navigate by just using the keyboard!
  • 🖱 Dragging bookings and downtimes in Schedule Beta now snaps bookings into position much faster than previously and the drop preview is now much more informative, showing the updated date range and the booked days more clearly, all the while preserving the functionality you’re already familiar with.
  • 🎨 As we keep working on finalising the look and feel of the application, we regularly update Schedule Beta with the latest updates, which should now start to feel much more consistent.

Hi there! I'm Klemen, one of the engineers at Resource Guru. I make sure all the browser bits fit together and sometimes take a hammer with me on the way to the data centre.