---
# System prepended metadata

title: Technical Task

---

### REST key-val store

Create an API with the following endpoints to create a key-value store. The purpose of the API is to store any arbitrary length value in a persistent store with respect to a key and later fetch these values by keys. These values will have a TTL (for example 5 minutes) and after the TTL is over, the values will be removed from the store.

### GET /values
Get all the values of the store.

response: `{key1: value1, key2: value2, key3: value3...}`

### GET /values?keys=key1,key2
Get one or more specific values from the store and also reset the TTL of those keys.

response: `{key1: value1, key2: value2}`

### POST /values
Save a value in the store.

request: `{key1: value1, key2: value2..}`
response: whatever’s appropriate

### PATCH /values
Update a value in the store and also reset the TTL.

request: `{key1: value1, key2: value2..}`
response: whatever’s appropriate

### Constraints
- Use appropriate status codes with all the responses.
- Remove all values stored over more than 5 minutes. Set a TTL
- Reset TTL on every GET Request.
- Has to be FAST
- Values can be of arbitrary length
- Must be fault-tolerant, persistent
- Must deploy using Docker.