Releases: albe/node-event-storage
v1.2.0 Raw EventStreams
Breaking changes:
scanConsumers()now returns parsed consumer descriptors ({ name, stream, identifier }) instead of filename strings.- Stream/type names produced via
typeAccessorare validated more strictly; invalid names (for example with whitespace) now fail fast.
New in 1.2:
- Raw EventStreams (
raw=true) across stream/category/query APIs, emitting NDJSONBufferchunks for zero-deserialization transport paths. - Raw predicates and object matchers for byte-level filtering, plus fixes for NDJSON/raw behavior in
EventStreamandJoinEventStream. - Read-path performance and correctness improvements (
readRange, merge/backwards iteration fixes, index sync optimization, partition identifier caching). - Consumer lifecycle improvements (in-memory registry lookup,
progressevents).
v1.1.0 DCB
What's Changed
- Skip reindexing when commit() creates a new write stream by @Copilot in #300
- feat: O(1) secondary-index dispatch via discriminant lookup table + LRU partition fd pool by @Copilot in #302
- Support hierarchical slash-separated stream names alongside existing dash-separated category streams by @Copilot in #301
- feat: DCB support via CommitCondition API, query() improvements, and typeAccessor string path by @Copilot in #304
- feat(Storage): async partition + index scan in open() with 'opened' event and callback hook by @Copilot in #303
Full Changelog: v1.0.0...v1.1.0
v1.0.0 Switch to ESM
This only contains a shift from old CJS to ESM exports. It is otherwise functionally equivalent to 0.9.1
v0.9.1 Fix npm publish workflow
This is just a workflow release. No functional changes.
v0.9.0 Full auto repair
This release now contains full crash recovery and repairs corrupted files, brings lagging indexes up to sync and guarantees commits are only written in full.
The repair behavior is tested with a stress test writing to storage in a tight loop and artificially crashing the process. An upper bound on potential data loss is guaranteed and only depends on write buffer size, hence is configurable.
The documentation has received an overhaul and is available at https://node-event-storage.readthedocs.io/en/latest/
This release also drops official support for nodejs < 18, though it should still be functional.
This project is now considered production ready.
The next release will be a breaking change, moving the code base to ESM.
Full change log:
v0.8.0...v0.9.0
v0.8.0
What's Changed
- Remove support for nodejs 8 by @albe in #117
- Bump mocha from 7.2.0 to 8.0.1 by @dependabot-preview[bot] in #113
- Bump fs-extra from 8.1.0 to 9.0.1 by @dependabot-preview[bot] in #112
- Allow overriding commitVersion on single event commit by @albe in #119
- Add API to get a category stream by @albe in #120
- Make indexes more robust by @albe in #121
- [Security] Bump lodash from 4.17.15 to 4.17.19 by @dependabot-preview[bot] in #123
- Bump mocha from 8.0.1 to 8.1.1 by @dependabot-preview[bot] in #128
- Bump mocha from 8.1.1 to 8.1.3 by @dependabot-preview[bot] in #131
- Bump mocha from 8.1.3 to 8.2.1 by @dependabot-preview[bot] in #133
- Add GH action for test coverage and remove travis-ci by @albe in #134
- Bump fs-extra from 9.0.1 to 9.1.0 by @dependabot-preview[bot] in #135
- Consumer improvements by @albe in #138
- Improve jsdoc blocks by @albe in #139
- Some code cleanup and fixes by @albe in #141
- Add nodejs 15.x to test matrix by @albe in #142
- Correctly recognize indexes stored in different directory in read-only storage by @albe in #143
- Fix matcher with undefined property checks by @albe in #144
- Bump mocha from 8.2.1 to 8.3.0 by @dependabot-preview[bot] in #147
- Newly created streams are recognized in read-only EventStore by @albe in #148
- Add support for reading partition backwards by @albe in #149
- Separate documents by a unique sequence and make partition backwards scannable by @albe in #145
- Truncate torn writes by @albe in #151
- Consumer persisted event receives (serialized) state by @albe in #154
- Add basic benchmark script and GH action by @albe in #153
- Fix index bench read range by @albe in #156
- Bump mocha from 8.3.0 to 8.3.1 by @dependabot-preview[bot] in #157
- Bump mocha from 8.3.1 to 8.3.2 by @dependabot-preview[bot] in #158
- Add commit size to store metadata by @albe in #159
- [Security] Bump y18n from 4.0.0 to 4.0.1 by @dependabot-preview[bot] in #160
- [Security] Bump lodash from 4.17.19 to 4.17.21 by @dependabot-preview[bot] in #163
- Upgrade to GitHub-native Dependabot by @dependabot-preview[bot] in #161
- Bump mocha from 8.3.2 to 8.4.0 by @dependabot-preview[bot] in #164
- Automatically repair torn writes on opening by @albe in #155
Full Changelog: v0.7.2...v0.8.0
Fix missing utils in package
v0.7.2 0.7.2
Fix missing index.js in package
v0.7.1 0.7.1
Read-Only mode and improved file format
This release is a breaking change, since the file format of partitions was changed.
Consumer state
- Consumers can store state with exactly-once semantics
- Node 6 no longer supported
- dependency version updates