Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Jira Legacy
serverSystem Jira
serverId01505d01-b853-3c2e-90f1-ee9b165564fc
keyMODKBEKBJ-255

...

The status enum includes the following values :

Status NameDescription 
Shema
Example
Example
Files
Not Started

before the first start of loading holdings.

The response will not provide any details.



Code Block
{
  "status": {
    "name": "Not Started",
  },
  "jsonapi": {
    "version": "1.0"
  }
}


View file
nameloadStatusDetails.json
height250
View file
namestatusDetailsEnum.json
height250
View file
nameloadingHoldingsStatus.json
height250
View file
namestatusAttributes.json
height250
View file
namestatusEnum.json
height250

Started

Backend service received the signal to start the process

but not yet called RM API.

The additional attributes can be provided but not required

  • started - the time of receiving the signal to start loading


Code Block
{
  "status": {
    "name": "Started",
  },
  "attributes": {
    "started": "1999-12-31 14:59:59"
  },
  "jsonapi": {
    "version": "1.0"
  }
}


In Progress

the loading is in progress. The additional attributes

can be

can be provided but not required:

  • detail - the details of the process. Currently includes these values
    • Populated to holdingspopulates holdings data to a staging area
    • Loading holdings - getting holdings from staging 
    • Saving holdings - saving holdings to database
  • started - the time of receiving the signal to start loading
  • totalCount - the total amount of holdings 


Code Block
{
  "status": {
    "name": "In Progress",
    "detail" : "Populated to holdings"
  },
  "attributes": {
    "started": "1999-12-31 14:59:59"
  },
  "jsonapi": {
    "version": "1.0"
  }
}


Code Block
{
  "status": {
    "name": "In Progress",
    "detail" : "Loading holdings"
  },
  "attributes": {
    "started": "1999-12-31 14:59:59",
    "totalCount": 1234
  },
  "jsonapi": {
    "version": "1.0"
  }
}


Completed

loading is finished and holdings saved in a database. The additional attributes can be provided but not required:

  • started - the time of receiving the signal to start loading
  • finished - the finished loading and saving holdings
  • totalCount - the total amount of holdings  


Code Block
{
  "status": {
    "name": "Completed"
  },
  "attributes": {
    "started": "1999-12-31 14:59:59",
    "finished": "1999-12-31 16:30:47",
    "totalCount": 1234
  },
  "jsonapi": {
    "version": "1.0"
  }
}


Failedsome request failed.
 
The additional attributes can be provided but not required:
  • errors - the list of errors. includes the following values
    • title - the error message title
    • detail - the error message detail
    • source - the error message source


Code Block
{
  "status": {
    "name": "Failed"
  }
  "errors": [{
    "title": "Invalid APIKEY",
    "detail": "Kb api credentials are invalid"
  }],
  "jsonapi": {
    "version": "1.0"
  }
}



Info

2. Add retry mechanism in case something fails - at least 3 retries

For the implementation of the retry mechanism, we can use the Circuit Breaker pattern existing for Vert.x -  https://vertx.io/docs/vertx-circuit-breaker/java/

...