1.0.4 • Published 6 years ago

jeeng-configs-cache v1.0.4

Weekly downloads
-
License
ISC
Repository
-
Last release
6 years ago

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

  1. Import package: const ConfigsCache = require('jeeng-configs-cache')

  2. 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
  1. Start retrieving values efficiently: const someValue = configCache.get('someValue')

Options

optiondefault valuedescription
keyPrefixjeengConfigCacheThe prefix for stored keys in Redis database.
valuesTableconfigsTable name where values are stored in postgres database.Table is of the following structure:|id::serial | name::varchar | value::varchar | optional more columns|
ttl3600The TTL of stored values in the Redis database