jeeng-configs-cache
v1.0.4
Published
Read configs from a Redis db, with failover to postgres. Created for serveless architecture usage.
Downloads
7
Maintainers
Readme
Jeeng-configs-cache
This is a helper package for Jeeng application LTD. It's main purpose is to support serverless architecture solutions. Mainly a quick way to efficiently store state and/or config values across serverless function invokations. It uses a Redis database and a postgres database for failover.
It searches the requested value in the following manner:
- Search the Redis database for the value (Search for key:
<keyPrefix>-valueName
) - If found:
- Respond with found value
- else:
- Search postgres database (Search table
valuesTable
). - If not found:
- Respond with
null
- Respond with
- Else:
- Store value in redis (in key:
<keyPrefix>-valueName
) with TTL ofttl
seconds. - Response with found value
- Store value in redis (in key:
- Search postgres database (Search table
Install
npm install --save jeeng-configs-cache
Usage
Import package:
const ConfigsCache = require('jeeng-configs-cache')
Instanciate a
ConfigCache
object:const configCache = new ConfigCache(<POSTGRES_CONNECTION_STRING>, <REDIS_CONNECTION_OBJECT>, options)
Where:
- POSTGRES_CONNECTION_STRING - is a postgres connection string of the format:
postgres://<user>:<password>@<host>:<port>/<database>
- REDIS_CONNECTION_OBJECT is an object with connection params as specified in the package
promise-redis
- Start retrieving values efficiently:
const someValue = configCache.get('someValue')
Options
| option | default value | description |
|-------------|------------------|-------------|
| keyPrefix | jeengConfigCache | The prefix for stored keys in Redis database. |
| valuesTable | configs | Table name where values are stored in postgres database.Table is of the following structure:|id::serial | name::varchar | value::varchar | optional more columns|
|
| ttl | 3600 | The TTL of stored values in the Redis database |