Skip to content

7.17.0 - Breaking the tyranny of the web request/response cycle

Latest
Compare
Choose a tag to compare
@epugh epugh released this 14 Jun 16:35

7.17. - 2024-06-14

This is a big one! We have broken the tyranny of the web request/response lifecycle by embracing some powerful Rails technologies:

  • ActionCable: We now support two way communication from the backend server to your front end browser via Web Sockets. This lets us notify not just the person who starts a long running process of updates, but also any OTHER user who is interested in a specific topic. For example, if someone uploads a Book with many thousands of judgements, then everyone who is part of that team can see the progress for them selves.

  • ActiveJob: This let's us run background jobs. Historically we only used it for tracking of events (like you visited a Case), however now we are using it for processing large data sets in the background.

  • ActiveStorage: We need to better handle LARGE datasets in Quepid. ActiveStorage lets us build massive export files and store them in the database as a binary until you decide to download the data. Likewise, importing large data files that take time to process is now supported by being able to store them in Quepid.

  • Hotwire: HTML over the Wire lets us render HTML on the backend using our familiar Rails MVC, but magically stream the updates to the front end. This lets us add interactivity without requiring us to build out a Single Page Javascript application.

These changes are going to enable a future for Quepid that let's it scale up signficantly and be a richer environment for measuring relevance and working with search!

Okay, now on to our more detailed list of changes:

Features

  • You can now run your Query Evaluations OUTSIDE of Quepid, and store the scores INSIDE Quepid. This gives you a place to share this information with folks in your team. See the example Python scripting here: https://github.com/o19s/quepid/tree/main/docs/examples/external_eval. We also enhanced the API documentation. #1034 by @epugh.

  • HTML Over the Wire! Now we only load HTML that has changed, which improves page percieved performance. Added new export and import of Books as background jobs with notifications to users over Web Sockets. You then can download the resulting file without waiting for the data processing. Loading aspects of the home page asyncrhonsly so the page loads super fast, and then content renders in as available. #992 by @epugh.

Improvements

  • Update to Rails 7.1 standards. #1033 by @epugh.

  • Nicer Admin Homepage visual layout. #1031 by @epugh.

  • Revamped performance of the Home page to not recalculate the case summaries if you've already cached them in the browser. Much faster page! #1022 and #1029 by @epugh.

  • New Case Wizard is smarter about existing Search Endpoints pane. #1012 by @epugh.

  • Lots of updates to all the dependencies!

Bugs

  • Swapping between HTTP and HTTPS end points would cause issues with your Search Endpoint configuration. #1035 by @epugh fixes #1005.

  • We state that judging a query doc pair only requires three jdugements, but didn't actually make that work. #1032 by @epugh and @wrigleyDan fixes #1019 by @wrigleyDan.

  • Fixed utf encoding in mysql for query_doc_pairs. #1017 by @epugh fixes #1013 by @wrigleyDan.

  • Pass basic auth credentials through when you view a specific document or use Quepid as a proxy to your search engine. #1015 by @epugh fixes #1014 by @david-fisher.