jeeng-configs-cache v1.0.4
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:
1. Search the Redis database for the value (Search for key: <keyPrefix>-valueName)
2. If found:
    1. Respond with found value
3. else:
    1. Search postgres database (Search table valuesTable).
    2. If not found:
        1. Respond with null
    3. Else:
        1. Store value in redis (in key: <keyPrefix>-valueName) with TTL of ttl seconds.
        2. Response with found value
Install
npm install --save jeeng-configs-cache
Usage
- Import package: - const ConfigsCache = require('jeeng-configs-cache')
- Instanciate a - ConfigCacheobject:- 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 |