<?xml version="1.0" encoding="utf-8"?>
<Gradivo ID="187359" NadgradivoID="0" NRID="29237461" OceID="0" DomainUrl="https://repozitorij.uni-lj.si/" IzpisPolniUrl="https://repozitorij.uni-lj.si/IzpisGradiva.php?lang=slv&amp;id=187359" StOgledov="91" StPrenosov="14" StOcen="0" VsotaOcen="0" DatumIzvoza="2026-09-26 18:21:28" OcenaSkupna="0" StPodgradiv="0" StudijskiProgramEvsID="1000468" JeIndeksirano="0" JeVecAvtorjev="0" DovoliZahtevkeZaDostop="0">
  <PID Url="http://hdl.handle.net/20.500.12556/RUL-187359">20.500.12556/RUL-187359</PID>
  <Naslov>Razvoj mikrostoritvene aplikacije z ogrodjem Quarkus in s sporočilnim sistemom NATS JetStream</Naslov>
  <Podnaslov></Podnaslov>
  <TujJezik_Naslov>Development of a microservices application using the Quarkus framework and the NATS JetStream messaging system</TujJezik_Naslov>
  <TujJezik_Podnaslov></TujJezik_Podnaslov>
  <Opis>V mikrostoritveni arhitekturi poslovni proces pogosto sega prek meja ene
same storitve. Klic, ki je bil v enoviti aplikaciji navaden klic metode, tedaj
postane omrežna komunikacija, s čimer se odpreta vprašanji zanesljivosti
in usklajenosti podatkov. V diplomskem delu smo z ogrodjem Quarkus in
sporočilnim sistemom NATS JetStream izdelali sistem za souporabo vozil,
v katerem rezervacija spreminja stanje vozila v drugi storitvi. Storitve so
podatkovno avtonomne in komunicirajo sinhrono prek vmesnikov REST ter
asinhrono z dogodki. S poskusom smo preverili obnašanje sistema ob izpadu
storitve, ki dogodke prevzema. Poskus je pokazal, da so bila po ponovnem
zagonu obdelana vsa sporočila, vendar ne v vrstnem redu objave, zaradi česar
je vozilo ostalo v napačnem stanju. Ugotovili smo, da porabnik, ki nastavlja
absolutno ciljno stanje, sicer prenese podvojeno dostavo, ni pa neodvisen od
vrstnega reda. Težavo smo odpravili tako, da v vozilo zapišemo doseženo
stopnjo življenjskega cikla rezervacije; porabnik na tej podlagi prezgodnji
dogodek zavrne in ga prepusti ponovni dostavi. Po popravku sistem konvergira
v pravilno stanje tudi ob najbolj neugodnem zaporedju obdelave.</Opis>
  <TujJezik_Opis>In a microservice architecture a business process often crosses the boundaries
of a single service. What used to be a method call in a monolithic application
becomes network communication, which raises questions of reliability and
data consistency. This thesis presents a car sharing system built with the
Quarkus framework and the NATS JetStream messaging system, in which
a booking changes the state of a vehicle owned by another service. The
services are data autonomous and communicate both synchronously over
REST interfaces and asynchronously through events. We tested the system’s
behaviour while the consuming service was down. The experiment showed
that all messages were processed after the restart, but not in the order in
which they had been published, leaving the vehicle in an incorrect state. We
found that a consumer setting an absolute target state tolerates duplicate
delivery but is not independent of ordering. We addressed this by recording
the booking lifecycle stage reached so far, on the basis of which a consumer
rejects a premature event and leaves it to redelivery. After the fix the system
converges to the correct state even under the least favourable processing
order.</TujJezik_Opis>
  <KljucneBesede>
    <Beseda>mikrostoritve</Beseda>
    <Beseda>Quarkus</Beseda>
    <Beseda>NATS JetStream</Beseda>
    <Beseda>sporočilni sistem</Beseda>
    <Beseda>asinhrona komunikacija</Beseda>
    <Beseda>Java</Beseda>
  </KljucneBesede>
  <TujJezik_KljucneBesede>
    <Beseda>microservices</Beseda>
    <Beseda>Quarkus</Beseda>
    <Beseda>NATS JetStream</Beseda>
    <Beseda>messaging system</Beseda>
    <Beseda>asynchronous communication</Beseda>
    <Beseda>Java</Beseda>
  </TujJezik_KljucneBesede>
  <Potrjeno>true</Potrjeno>
  <JeZaklenjeno>false</JeZaklenjeno>
  <JeRecenzirano>false</JeRecenzirano>
  <Zaloznik></Zaloznik>
  <Izvor></Izvor>
  <Jezik ID="1060" ISO639-3="slv">Slovenski jezik</Jezik>
  <TujJezik ID="1033" ISO639-3="eng">Angleški jezik</TujJezik>
  <Povezave></Povezave>
  <Pokrivanje></Pokrivanje>
  <CasovnoPokritje></CasovnoPokritje>
  <AvtorskePravice></AvtorskePravice>
  <VrstaGradiva ID="mb11" DRIVER="info:eu-repo/semantics/bachelorThesis">Diplomsko delo/naloga</VrstaGradiva>
  <DatumVstavljanja>2026-09-10 11:35:22</DatumVstavljanja>
  <DatumObjave>2026-09-10 11:35:28</DatumObjave>
  <DatumSpremembe>2026-09-25 06:51:13</DatumSpremembe>
  <DatumTrajnegaHranjenja>0000-00-00 00:00:00</DatumTrajnegaHranjenja>
  <LetoIzida>2026</LetoIzida>
  <LetoIzidaDo>0</LetoIzidaDo>
  <KrajIzida></KrajIzida>
  <LetoIzvedbe>0</LetoIzvedbe>
  <KrajIzvedbe></KrajIzvedbe>
  <Opomba></Opomba>
  <StStrani></StStrani>
  <StevilcenjeNivo1></StevilcenjeNivo1>
  <StevilcenjeNivo2></StevilcenjeNivo2>
  <Kronologija></Kronologija>
  <Patent_Stevilka></Patent_Stevilka>
  <Patent_DatumVeljavnosti>0000-00-00</Patent_DatumVeljavnosti>
  <VerzijaDokumenta>NiDoloceno</VerzijaDokumenta>
  <StatusObjaveDrugje>NiDoloceno</StatusObjaveDrugje>
  <VrstaStroskaObjave>NiDoloceno</VrstaStroskaObjave>
  <DatumPoslanoVRecenzijo>0000-00-00</DatumPoslanoVRecenzijo>
  <DatumSprejetjaClanka>0000-00-00</DatumSprejetjaClanka>
  <DatumObjaveClanka>0000-00-00</DatumObjaveClanka>
  <EmbargoDo></EmbargoDo>
  <VrstaEmbarga ID="1" Naziv="Takojšnja javna objava" OpenAIREDostop="openAccess"></VrstaEmbarga>
  <Osebe>
    <Oseba ID="165579" Ime="Matjaž" Priimek="Auberšek" AltIme="" VlogaID="70" VlogaNaziv="Avtor" ConorID="" Afiliacija="" ArrsID="0" ORCID=""></Oseba>
    <Oseba ID="64139" Ime="Branko Matjaž" Priimek="Jurič" AltIme="" VlogaID="991" VlogaNaziv="Mentor" ConorID="" Afiliacija="" ArrsID="0" ORCID=""></Oseba>
  </Osebe>
  <Identifikatorji>
    <Identifikator ID="16" Sifra="VisID" Naziv="VisID" URL="">39016</Identifikator>
    <Identifikator ID="3" Sifra="CobissID" Naziv="COBISS_ID" URL="https://plus.cobiss.net/cobiss/si/sl/bib/292438275">292438275</Identifikator>
  </Identifikatorji>
  <Datoteke>
    <Datoteka ID="246974" DatotekaNRID="14784441" NamenDatotekeID="2" NamenDatoteke="Predstavitvena datoteka" FormatDatotekeID="2" FormatDatoteke=".pdf" MIME="application/pdf" IkonaFormata="pdf.png" IkonaFormataPolniUrl="https://repozitorij.uni-lj.si/teme/rulDev/img/fileTypes/pdf.png" VelikostDatoteke="833566" VelikostDatotekeKratko="814,03 KB" DatumVstavljanja="2026-09-10 11:35:29" JeZbrisana="false" JeJavnoVidna="true" JeIndeksirana="false" JeVidno="true" VidnoOd="01.01.0001" Zaporedje="0">
      <Naziv>Aubersek_Matjaz_-_Razvoj_mikrostoritvene_aplikacije_z_ogrodjem_Quarkus_in_s_sporocilnim_sistemom.pdf</Naziv>
      <OrgNaziv>Aubersek_Matjaz_-_Razvoj_mikrostoritvene_aplikacije_z_ogrodjem_Quarkus_in_s_sporocilnim_sistemom.pdf</OrgNaziv>
      <URL></URL>
      <Opis></Opis>
      <OpisTujJezik></OpisTujJezik>
      <UrlObdelave></UrlObdelave>
      <FrekvencaAzuriranjaID>1</FrekvencaAzuriranjaID>
      <Verzija></Verzija>
      <MD5>87CFA5D9BDA37FF3118DDCD96E9F2BAF</MD5>
      <SHA256>a5bac575af09fcf9658e7c2ac35739b740c0d85127ace2a8d387be3c4532306e</SHA256>
      <UUID>ef27d1ce-acfa-11f1-8bc5-0050569b8976</UUID>
      <PID></PID>
      <PrenosPolniUrl>https://repozitorij.uni-lj.si/Dokument.php?lang=slv&amp;id=246974</PrenosPolniUrl>
      <Vsebine>
      </Vsebine>
    </Datoteka>
  </Datoteke>
  <Organizacije>
    <Organizacija OrganizacijaID="25" Kratica="FRI" ZavodEvsID="0000066" Logo="" LogoPolniUrl="https://repozitorij.uni-lj.si/teme/rulDev/img/logo/">Fakulteta za računalništvo in informatiko</Organizacija>
  </Organizacije>
  <OrganizacijeVira>
  </OrganizacijeVira>
  <MetodeZbiranjaPodatkov>
  </MetodeZbiranjaPodatkov>
  <TipologijaDela ID="2.11" Koda="2.11" Naziv="Diplomsko delo" SchemaOrg="Thesis"></TipologijaDela>
  <Ostalo>
    <StIrodsDatotek>0</StIrodsDatotek>
    <StDatotekPodTrajnimEmbargom>0</StDatotekPodTrajnimEmbargom>
    <StDatotekZOmejenimDostopom>0</StDatotekZOmejenimDostopom>
  </Ostalo>
</Gradivo>
