###############################################################################

      *****************        Hey! Welcome to the Kwoosh Workshop
     *******************       -----------------------------------
    *******  *****  *****
   ********  ****  *******     This is where we talk about the things
  *********  ***  *********    we're working on.
 **********  **  ***********
***********     *************  Most things start as messy ideas before
 **********  **  ***********   they get polished into finished features.
  *********  ***  *********
   ********  ****  *******     This is a place for messy ideas.
    *******  *****  *****
     *******************       For the completed product see kwoosh.com
      *****************

###############################################################################
                

Starting the switch to "just in time" data

This week we deployed our first stage of switching from a Just In Case (JIC) to a Just In Time (JIT) data strategy for Kwoosh.

Currently we provide all the data for a given page on each request. This means that the user might be sent 10 data records or 200. This method is fine when you have small data sets, but as things grow and you return more data the page loads begin to slow down, and most of the data you return isn’t needed by the user.

A traditional way to solve this problem is to add pagination. This allows you to only return a small subset of your data at once and keep things fast and near infinitely scalable. The issue with this is that users have to click to go back and forth between different results, and you can run into issues if new data is added between result pages.

Modern web apps look to solve these problems by auto loading the data when the user scrolls or the screen has empty space to show more content. This means the user doesn’t have to click between pages, and, if done correctly, feels like all the data was originally loaded but without the long wait time.

We have started our journey down this path by creating a data source component within Vue, that takes over the job of obtaining the data the page needs and asking for more when it’s needed.

—jw