/
Redis Cache Supportability API changes
Redis Cache Supportability API changes
Background
To scale content and hierarchy consumptions, metadata which is fetched as part of the response is stored in Redis cache. In order to support data reset in redis and also to compare neo4j and redis, small adhocs are added to existing APIs.
API changes
Force read from Neo4j
To force read data from neo4j for live node instead of redis(which is default), source=db is introduced.
Content Read API:
Request: GET - content/v3/read/{content_id}?source=db Response: { "id": "ekstep.content.find", "ver": "3.0", "ts": "YYYY-MM-DDThh:mm:ssZ+/-nn.nn", "params": { "resmsgid": "", "msgid": "", "err": "", "status": "successful", "errmsg": "" }, "responseCode": "OK", "result": { content: { //content metadata from neo4j } } }
Get Hierarchy API:
Request: GET - content/v3/hierarchy/{content_id}?source=db Response: { "id": "ekstep.learning.content.hierarchy", "ver": "3.0", "ts": "YYYY-MM-DDThh:mm:ssZ+/-nn.nn", "params": { "resmsgid": "", "msgid": "", "err": "", "status": "successful", "errmsg": "" }, "responseCode": "OK", "result": { content: { //content metadata from neo4j } } }
Reset Redis
To force reset data in redis, refresh_cache=true is introduced. This reads data from neo4j and reset the data in redis.
Content Read API:
Request: GET - content/v3/read/{content_id}?refresh_cache=true Response: { "id": "ekstep.content.find", "ver": "3.0", "ts": "YYYY-MM-DDThh:mm:ssZ+/-nn.nn", "params": { "resmsgid": "", "msgid": "", "err": "", "status": "successful", "errmsg": "" }, "responseCode": "OK", "result": { content: { //content metadata from neo4j } } }
Get Hierarchy API:
Request: GET - content/v3/hierarchy/{content_id}?refresh_cache=true Response: { "id": "ekstep.learning.content.hierarchy", "ver": "3.0", "ts": "YYYY-MM-DDThh:mm:ssZ+/-nn.nn", "params": { "resmsgid": "", "msgid": "", "err": "", "status": "successful", "errmsg": "" }, "responseCode": "OK", "result": { content: { //content metadata from neo4j } } }
, multiple selections available,
Related content
Caching read API using Redis
Caching read API using Redis
More like this
Content - external store data restructuring
Content - external store data restructuring
More like this
Splitting the Redis Updater samza job
Splitting the Redis Updater samza job
More like this
Update Hierarchy - Partial Hierarchy Update APIs
Update Hierarchy - Partial Hierarchy Update APIs
More like this
Cache Implementation Design
Cache Implementation Design
More like this
Content Discard API specification
Content Discard API specification
More like this