Event-driven retrieval pipeline migration
No Thumbnail Available
URL
Journal Title
Journal ISSN
Volume Title
Perustieteiden korkeakoulu |
Master's thesis
Authors
Date
2024-08-19
Department
Major/Subject
Computer Science
Mcode
SCI3042
Degree programme
Master’s Programme in Computer, Communication and Information Sciences
Language
en
Pages
49
Series
Abstract
This thesis explores the migration of a retrieval pipeline from an old architecture to a new and improved one. The pipeline is an important feature of a platform application responsible for serving millions of requests. Several problems were identified and analysed during the investigation, such as poor scalability, reliability and adaptability. These problems were primarily caused by poor design decisions and accumulated technical debt. To overcome the problems an artifact was designed and implemented using event-driven architecture and change data capture paradigm. The artefact's purpose is to obtain data from a set of database tables, subscribe to its change events, and to make this data retrievable as well as keep it up to date. To make this possible, the pipeline uses a change data capture process which propagates all change events from relevant databases to a search engine. This search engine is then queried to obtain relevant results. This artefact design was chosen to improve reliability and adaptability of the retrieval pipeline. A major challenge with the artefact was to patch into all applicable data sources, and to keep the retrieval database up to date without overloading it. The former issue was solved by implementing and using various change data capture systems, while the latter by only updating entities in the retrieval database when a critical piece of information has changed. To keep the data from becoming stale, the entire database will be rebuilt regularly in a scheduled job. This approach is a fitting balance between data freshness and database load. In the end, the new design was a success, with the artefact having improved consistency, adaptability and scalability, and was accepted into use within the organization. During implementation some flaws were discovered such as missing pipeline monitoring and increased complexity. These deficiencies were recorded and will be addressed in the future.Tämä työ tutkii tiedonhakujärjestelmän siirtymistä uuteen paranneltuun arkkitehtuuriin. Paranneltava hakujärjestelmä on tärkeä osa alustasovelluksen tuotteiden löytämisessä ja palvelee miljoonia hakupyyntöjä vuorokaudessa. Tutkimustyön aikana havaittiin useita ongelmia kuten huono hakutietokantapäivitysten skaalautuvuus, luotettavuus ja jatkokehityspotentiaali. Nämä ongelmat pääasiassa aiheutuivat huonoista arkkitehtuurisuunnittelupäätöksistä ja ajan kanssa karttuneesta teknisestä velasta. Haasteiden ratkaisuksi suunniteltiin ja toteutettiin artefakti, joka käyttää tapahtumapohjaista arkkitehtuuria sekä tiedonmuutoskaappaus ajatusmallia. Artefaktin tehtävänä on ottaa haltuunsa tietoa joukosta tietokantatauluja, seurata taulujen tietojen päivityksiin ja lopulta tehdä tästä datasta hakukelpoista pitäen sen ajantasaisena. Tämä mahdollistettiin käyttämällä järjestelmässä tiedonmuutoskaappaus-prosessia, joka haalii ja siirtää kaikki muutostapahtumat tarvittavista tietokannoista hakutietokantaan. Tämän jälkeen tätä tietoa voidaan käyttää käyttäjien hauissa asiaankuuluvien tuloksien hakemiseen. Tämä malli valittiin hakujärjestelmän luotettavuuden ja jatkokehityspotentiaalin lisäämiseksi. Merkittävimmät haasteet artefaktin kehitystyössä olivat hakutietokannan tietojen keräys, ja sen tuoreuden ja ylläpitokustannusten tasapainottelu. Tämä haaste ratkaistiin rajaamalla reaaliaikaiset hakutietokantapäivitykset vain tärkeimmille tiedoille. Jotta hakutietokannan tiedot eivät vanhene koko tietokanta uudelleenrakennetaan tyhjästä automatisoitujen prosessien avulla. Tämä lähestymistapa tarjoaa hyvän tasapainon tiedon tuoreuden ja hakutietokannan kuormituksen välillä. Loppujen lopuksi uusi arkkitehtuurin suunnittelu oli menestys, uudessa artefaktissa on parempi tiedon eheys, skaalautuvuus ja jatkokehityspotentiaali, ja se hyväksyttiin organisaatiossa käyttöön. Kehityksen ja käytön aikana havaittiin tiettyjä haittapuolia kuten puuttuva järjestelmän seuranta ja lisääntynyt monimutkaisuus. Nämä puutteet ovat huomioitu ja jätetään ratkaistavaksi tulevaisuudessa.Description
Supervisor
Haaranen, LassiThesis advisor
Gurshchenkova, AlyonaKeywords
retrieval, event-driven architecture, change data capture, search engine, data pipelines