Skip to content

Releases: mpareja/gearshaft

v0.10.1: inert write substitute (2020-01-02)

02 Jan 12:28

Choose a tag to compare

Highlights

  • messaging: write substitute is not bound to in-memory message store by default. Writes are no-ops that always succeed - stream expected version checking is not performed. Use the rich set of assertion methods provided by the substitute to validate a message was written with the corrrect expected version.

Commits

  • (601a7d1) tools: use version sort when finding last version
  • (1b9c8d4) messaging: write substitute: default to inert message-store write

v0.10.0: minor usability enhancements (2020-01-01)

01 Jan 13:22

Choose a tag to compare

Highlights

  • message-store: ease creation of entity stream names from a category.
  • messaging: add convenience method assertStreamWritesInitial for asserting a set of writes occurred at the start of a stream.
  • messaging: bug fix: raise correct error when asserting a set of writes occurred but no writes were made

Commits

  • (909c93a) messaging: write: add assertStreamWritesInitial
  • (ee7218c) messaging: write: substitute: fix asserting expected version when no writes
  • (7c2228d) message-store: category: support creating entity stream names

v0.9.0: consumer group support (2019-12-22)

22 Dec 13:28

Choose a tag to compare

Highlights

  • consumer: support parallel processing via consumer groups.
  • message-store: support filtering messages in a category by consumer group.

Commits

  • (ef90298) package: upgrade pg to 7.15.1
  • (95f6969) message-store: support configuring group size/member via env variable
  • (1f37027) consumer: support consumer group
  • (535b99c) message-store: getCategory: support consumer groups
  • (8ff542b) message-store: StreamName: support parsing cardinal id
  • (10db52a) tools: add release note generator
  • (b94a969) CHANGELOG: reformat commit sections

v0.8.0: support correlated messaging

20 Dec 14:23
2510edb

Choose a tag to compare

Pre-release

Highlights

  • message-store: messages read from a category can now be filtered by supplying a correlation category name.
  • consumer: a consumer can now ignore messages unrelated to its workflows by specifying the correlation option. Only messages with a correlation_stream_name matching the supplied correlation category will be consumed.
  • BREAKING: get/read now accept position as a named option rather than positional parameter.

Commits

fc713f0 message-store: add basic getStream benchmark
43ee2e7 benchmark: include node version in results
dfa4370 consumer: use benchmark library and adjust result schema accordingly
77aebc9 benchmark: add writeStatsFile
9def2f8 benchmark: add computeStats and getSystemInfo functions and tests
f47e19f consumer: move bulkWrite and cycle out of consumer
c74695b consumer: update noop-consumer benchmark results
cbff5ca message-store: get supports filtering by correlation stream name
df85ec0 message-store: get/read now accept position as named option
d2b909e message-store: read: position is supplied as named option

v0.7.1: use @eventide/message-db package for database

16 Dec 10:14

Choose a tag to compare

Highlights

  • BREAKING: Gearshaft now depends on @eventide/message-db for the Postgres message store. Existing databases must be migrated.
  • Message stores now export getCategory and getStream functions for working explicitly with category streams and entity streams.
  • CONTRIBUTORS: Ruby is no longer required for working on Gearshaft!

Commits

161f624 package: bump version to 0.7.0
f743a1a tools: github workflow no longer needs ruby
fa6f86e consumer: use getCategory explicitly
0461df0 message-store: memory: export getCategory and getStream
1948f2e message-store: exports getCategory & getStream, separate tests
aaedd43 message-store: add examplePutCategory
e4c1ae5 errors: add assertTruthy
e63d4ba messaging: use assertStrictEqual
16d2bb6 errors: add assertStrictEqual
ada490a message-store: separate category and stream get implementations
30ef27f package: leverage @eventide/message-db

v0.7.0: --- skipped ---

15 Dec 22:42

Choose a tag to compare

Pre-release

The publish for 0.7.0 mysteriously disappeared. The publish completed successfully, and npm sent out publish completed email, but the new version never appeared in the registry.

v0.6.0: improved experience for implementing handler test cases

11 Dec 11:39

Choose a tag to compare

Highlights

  • Adds EntityStoreSubstitute which can be used by handler test suites wanting to exercise different states of an entity. Entities can be added to an instance of EntityStoreSubstitute via the add function.
  • assertNoWrites has been added to WriterSubstitute. Test suites can now assert no writes have occurred to a specific stream or any streams all together.

Commits

2fae100 entity-store: don't nest entity under record metadata
1531ccd package: upgrade dev dependencies
0326775 entity-store: introduce EntityStoreSubstitute
f267a59 messaging: write substitute: add assertNoWrites assertion

v0.5.0: entity-store: add fetchRecord support

28 Nov 03:27

Choose a tag to compare

Highlights

  • EntityStore now supports obtaining the version of the entity being fetched via the fetchRecord function. Additional metadata will be made available once entity caching support is added.
    const [ entity, { version } ] = store.fetchRecord(id)
    

v0.4.0: follow enhancements

25 Nov 10:07

Choose a tag to compare

Pre-release

Highlights

  • follow now supports providing an object with additional fields. Additional fields are Object.assigned together with fields from the message being followed before the subsequent message is created.
  • follow now looks for a static method named create on the constructor of the subsequent message. If a create method is found, follow will call it to build the subsequent message rather than using the class constructor and assigning fields. The create implementation is responsible for assigning fields to the returned message instance. This is an ideal place to introduce message schema validation.

Commits

bc827d7 messaging: follow: support providing additional fields
1509ccf package: upgrade dependencies
3e3e1c3 messaging: follow supports custom message creation

v0.3.1: messaging: write substitute: accept message store

09 Nov 10:53

Choose a tag to compare

Highlights

  • createWriterSubstitute now supports specifying a message store. A message store instance can be used when exercising a handler that writes (via the substitute to benefit from assertions) and reads from the message store.

Commits

0e5fd2e messaging: write-substitute: accept message store
ec629b8 package: add way to browse dependency graph
ed7a682 package: consumer: normalize importing of examples