shoulder-tap
Advanced tools
Comparing version 1.0.0 to 1.1.0
{ | ||
"name": "shoulder-tap", | ||
"version": "1.0.0", | ||
"version": "1.1.0", | ||
"description": "Allows clients to connect to a server and signal via a light-weight shoulder-tap event to indicate that work is available. It utilizes UDP. It was implemented to reduce latency and need for high frequency polling when implementing reliable distributed transactions between microservices.", | ||
@@ -39,3 +39,7 @@ "main": "index.js", | ||
"delay": "^4.3.0", | ||
"esm": "^3.2.25" | ||
"esm": "^3.2.25", | ||
"json-stringify-safe": "^5.0.1", | ||
"lru-cache": "^6.0.0", | ||
"pino": "^6.6.1", | ||
"pino-pretty": "^4.2.1" | ||
}, | ||
@@ -42,0 +46,0 @@ "devDependencies": { |
@@ -49,2 +49,43 @@ | ||
#### Configuration | ||
```javascript | ||
const config = { | ||
disabled: process.env.SHOULDER_TAP_DNS_DISABLE === 'true', | ||
dnsTtlMs: process.env.SHOULDER_TAP_DNS_CACHE_TTL_MS || 10000, // when to refresh actively used dns entries (10 sec) | ||
cacheGraceExpireMultiplier: process.env.SHOULDER_TAP_DNS_CACHE_EXPIRE_MULTIPLIER || 2, // maximum grace to use entry beyond TTL | ||
dnsIdleTtlMs: process.env.SHOULDER_TAP_DNS_CACHE_IDLE_TTL_MS || 1000 * 60 * 60, // when to remove entry entirely if not being used (1 hour) | ||
backgroundScanMs: process.env.SHOULDER_TAP_DNS_BACKGROUND_SCAN_MS || 5000, // how frequently to scan for expired TTL and refresh (5 sec) | ||
dnsCacheSize: process.env.SHOULDER_TAP_DNS_CACHE_SIZE || 100, // maximum number of entries to keep in cache | ||
// pino logging options | ||
logging: { | ||
name: 'shoulder-tap-cache-dns-resolve', | ||
// enabled: true, | ||
level: process.env.SHOULDER_TAP_DNS_LOG_LEVEL || 'info', // default 'info' others trace, debug, info, warn, error, and fatal | ||
// timestamp: true, | ||
prettyPrint: process.env.NODE_ENV === 'DEBUG' || false, | ||
useLevelLabels: true, | ||
}, | ||
} | ||
``` | ||
#### Statistics | ||
Statistics are available via getStats() | ||
Recommend exposing this through consuming service health statistic/metrics endpoints. | ||
```javascript | ||
const stats = { | ||
dnsEntries: 0, | ||
refreshed: 0, | ||
hits: 0, | ||
misses: 0, | ||
idleExpired: 0, | ||
errors: 0, | ||
lastError: 0, | ||
lastErrorTs: 0, | ||
} | ||
``` | ||
## Getting started | ||
@@ -51,0 +92,0 @@ |
@@ -0,3 +1,6 @@ | ||
import dns from 'dns' | ||
import dgram from 'dgram' | ||
import * as dnsLookup from './cached-dns-resolve' | ||
export default class ShoulderTapCient { | ||
@@ -8,3 +11,6 @@ constructor(config = {}) { | ||
this.type = config.type || 'udp4' | ||
this.client = dgram.createSocket(this.type) | ||
this.client = dgram.createSocket({ | ||
type: this.type, | ||
lookup: dnsLookup.lookup, | ||
}) | ||
} | ||
@@ -11,0 +17,0 @@ |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Network access
Supply chain riskThis module accesses the network.
Found 2 instances in 1 package
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 8 instances in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
16133
14
354
125
6
8
5
+ Addedjson-stringify-safe@^5.0.1
+ Addedlru-cache@^6.0.0
+ Addedpino@^6.6.1
+ Addedpino-pretty@^4.2.1
+ Added@hapi/bourne@2.1.0(transitive)
+ Addedansi-styles@3.2.14.3.0(transitive)
+ Addedargs@5.0.3(transitive)
+ Addedatomic-sleep@1.0.0(transitive)
+ Addedcamelcase@5.0.0(transitive)
+ Addedchalk@2.4.24.1.2(transitive)
+ Addedcolor-convert@1.9.32.0.1(transitive)
+ Addedcolor-name@1.1.31.1.4(transitive)
+ Addeddateformat@4.6.3(transitive)
+ Addedend-of-stream@1.4.4(transitive)
+ Addedescape-string-regexp@1.0.5(transitive)
+ Addedfast-redact@3.5.0(transitive)
+ Addedfast-safe-stringify@2.1.1(transitive)
+ Addedflatstr@1.0.12(transitive)
+ Addedhas-flag@3.0.04.0.0(transitive)
+ Addedinherits@2.0.4(transitive)
+ Addedjmespath@0.15.0(transitive)
+ Addedjoycon@2.2.5(transitive)
+ Addedjson-stringify-safe@5.0.1(transitive)
+ Addedleven@2.1.0(transitive)
+ Addedlru-cache@6.0.0(transitive)
+ Addedmri@1.1.4(transitive)
+ Addedonce@1.4.0(transitive)
+ Addedpino@6.14.0(transitive)
+ Addedpino-pretty@4.8.0(transitive)
+ Addedpino-std-serializers@3.2.0(transitive)
+ Addedprocess-warning@1.0.0(transitive)
+ Addedpump@3.0.2(transitive)
+ Addedquick-format-unescaped@4.0.4(transitive)
+ Addedreadable-stream@3.6.2(transitive)
+ Addedrfdc@1.4.1(transitive)
+ Addedsafe-buffer@5.2.1(transitive)
+ Addedsonic-boom@1.4.1(transitive)
+ Addedsplit2@3.2.2(transitive)
+ Addedstring_decoder@1.3.0(transitive)
+ Addedstrip-json-comments@3.1.1(transitive)
+ Addedsupports-color@5.5.07.2.0(transitive)
+ Addedutil-deprecate@1.0.2(transitive)
+ Addedwrappy@1.0.2(transitive)
+ Addedyallist@4.0.0(transitive)