The functional Requirements are:
Here are the non-functional requirements:
PUT /v1/cache
Request Body:
{
"key": "ExampleKey",
"value": "Examplevalue",
"ttl": 3600
}
Response for success:
{
"status": "success",
"code": 200,
"message": "Entry added/updated"
}
Response for error:
{
"status": "error"
"code": 4xx/5xx
"message": "Invalid Input"
}
GET /v1/cache?key=examplekey
Response for success:
{
"status": "success"
"code": 200
"data": "Examplevalue"
}
Response for failure:
{
"status": "error"
"code": 4xx/5xx
"message": "key not found"
}
A failure is a cache miss which followed by a retrieval from the server itself. Now a corressponsind cache entry is made (lazy loading) so that future requests are served
The high level Desing consists of the following components:
CACHING DEEP DIVE