0.24.0-alpha.0 • Published 3 days ago

@toa.io/extensions.stash v0.24.0-alpha.0

Weekly downloads
-
License
-
Repository
github
Last release
3 days ago

Toa Stash

Shared cache and distributed lock manager on top of ioredis and redlock.

Shared cache

stash aspect exposes ioredis methods.

async function computation (input, context) {
  await context.stash.set('key', 'value')
  await context.stash.get('key')
}

Keys are component-scoped, meaning that the underlying Redis keys are namespace:name:key.

Storing objects

async store (key: string, value: object, ...args: Array<string | number>)

async fetch (key: string): object

...args are the arguments of set starting from third.

Values are encoded using msgpack.

Distributed lock manager

async lock<T>(id: string | string[], routine: async? () => T): T

Executes routine once a lock is successfully acquired. Lock ID is component-scoped.

async function computation (input, context) {
  await context.stash.lock('lock id', () => console.log('Lock acquired'))
}

Manifest

To enable extension for a component, add null definition to its manifest:

stash: ~

Deployment

stash context annotation is a Pointer with ID stash.

stash: # shortcut is available
  .: redis://redis.example.com
  dummies.dummy: redis://dummies.redis.example.com

Neither password authentication nor TLS are implemented. #367

1.0.0-alpha.32

3 days ago

1.0.0-alpha.29

6 days ago

1.0.0-alpha.30

5 days ago

1.0.0-alpha.31

4 days ago

1.0.0-alpha.27

10 days ago

1.0.0-alpha.28

10 days ago

1.0.0-alpha.26

1 month ago

1.0.0-alpha.25

1 month ago

1.0.0-alpha.24

1 month ago

1.0.0-alpha.23

1 month ago

1.0.0-alpha.22

1 month ago

1.0.0-alpha.21

1 month ago

1.0.0-alpha.20

2 months ago

1.0.0-alpha.19

2 months ago

1.0.0-alpha.18

2 months ago

1.0.0-alpha.17

2 months ago

1.0.0-alpha.16

2 months ago

1.0.0-alpha.15

2 months ago

1.0.0-alpha.14

2 months ago

1.0.0-alpha.13

2 months ago

1.0.0-alpha.12

2 months ago

1.0.0-alpha.10

2 months ago

1.0.0-alpha.11

2 months ago

1.0.0-alpha.9

2 months ago

1.0.0-alpha.8

2 months ago

1.0.0-alpha.7

2 months ago

1.0.0-alpha.6

2 months ago

1.0.0-alpha.5

2 months ago

1.0.0-alpha.4

2 months ago

1.0.0-alpha.3

2 months ago

1.0.0-alpha.2

3 months ago

0.24.0-alpha.23

3 months ago

0.24.0-alpha.22

3 months ago

0.24.0-alpha.21

3 months ago

0.24.0-alpha.20

3 months ago

0.24.0-alpha.19

3 months ago

0.24.0-alpha.16

5 months ago

0.24.0-alpha.17

5 months ago

0.24.0-alpha.18

5 months ago

0.24.0-alpha.15

5 months ago

0.24.0-alpha.13

5 months ago

0.24.0-alpha.14

5 months ago

0.20.0-dev.29

10 months ago

0.23.0-dev.0

6 months ago

0.20.0

6 months ago

0.20.0-dev.40

8 months ago

0.20.1-alpha.0

6 months ago

1.0.0-alpha.0

6 months ago

0.20.0-alpha.0

8 months ago

0.20.0-alpha.1

8 months ago

0.20.0-alpha.2

7 months ago

0.24.0-alpha.4

6 months ago

0.20.0-dev.36

9 months ago

0.24.0-alpha.3

6 months ago

0.20.0-dev.35

9 months ago

0.24.0-alpha.10

6 months ago

0.24.0-alpha.6

6 months ago

0.20.0-dev.34

9 months ago

0.24.0-alpha.11

6 months ago

0.24.0-alpha.5

6 months ago

0.24.0-alpha.12

6 months ago

0.24.0-alpha.8

6 months ago

0.24.0-alpha.7

6 months ago

0.20.0-dev.39

9 months ago

0.20.0-dev.38

9 months ago

0.24.0-alpha.9

6 months ago

0.20.0-dev.37

9 months ago

0.24.0-alpha.0

6 months ago

0.20.0-dev.31

10 months ago

0.24.0-alpha.2

6 months ago

0.20.0-dev.30

10 months ago

0.22.0

6 months ago

0.20.0-dev.28

10 months ago

0.20.0-dev.24

11 months ago

0.20.0-dev.23

11 months ago

0.20.0-dev.22

11 months ago

0.20.0-dev.21

11 months ago

0.20.0-dev.20

11 months ago

0.20.0-dev.19

11 months ago

0.20.0-dev.18

11 months ago