Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

shoulder-tap

Package Overview
Dependencies
Maintainers
1
Versions
9
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

shoulder-tap - npm Package Compare versions

Comparing version 1.0.0 to 1.1.0

cached-dns-resolve.js

8

package.json
{
"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 @@

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc