Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Releases: event-driven-io/emmett

0.38.5

26 Aug 16:47
Compare
Choose a tag to compare

πŸ“ What's Changed

  • Fixed deepEquals setup to cover a wider range of cases Now it should work for dates, sets, maps and other types in a more rigid way. by @oskardudycz in #262

Full Changelog: 0.38.4...0.38.5

0.38.4

22 Aug 08:39
Compare
Choose a tag to compare

πŸ“ What's Changed

  • Improved PostgreSQL Event Store performance. Ensured that the information that migrations were run is preserved throughout the event store creation in the command handler. This was causing redundant tries to create the schema again. Improved the check for existing stream during append to avoid a potential full scan instead of the index check. by @oskardudycz in 259 and 261

πŸ“š Docs

  • Added read models documentation to getting started by @oskardudycz in 254

Full Changelog: 0.38.3...0.38.4

0.38.3

22 Jun 10:55
Compare
Choose a tag to compare

πŸ“ What's Changed

  • Fixed ESDB reactors to handle events sequentially by @oskardudycz in #252
  • Fixed InMemorDatabase replace method to select document to replace correctly by @oskardudycz in #252
  • Made reactors skip events that they have already processed. This is done by checking if the message checkpoint is greater than the last processed one. by @oskardudycz in #252

Full Changelog: 0.38.2...0.38.3

0.38.2

07 Jun 16:43
Compare
Choose a tag to compare

πŸ“ What's Changed

  • Fixed EventStoreDB category stream checkpointing Now, consumers for category and event type streams should be able to properly checkpoint their positions. by @oskardudycz in #251

Full Changelog: 0.38.1...0.38.2

0.38.1

26 May 07:32
Compare
Choose a tag to compare

πŸ“ What's Changed

  • Fixed bug in MongoDB inline projection count helper to ignored deleted projections. by @alex-laycalvert in #250

Full Changelog: 0.38.0...0.38.1

0.38.0

15 May 13:06
Compare
Choose a tag to compare

πŸš€ What's New

1. In-memory event store improvements

  • Added handling to inline projections in the in-memory event store. Great for playing with Emmett and prototyping before needing to use the regular durable storage. by @GaryACraine in 236
  • Made in-memory database return Promises instead of sync results by @oskardudycz in 248

2. SQLite event store improvements

  • Added SQLite raw SQL projection tests Now you can both define and test raw SQL projections with SQLite. See more in sample test by @davecosec in 229

3. Consumer improvements

  • Added explicit methods for reactor and projector in PostgreSQLConsumer to avoid weird type inference issues Now you can define processors by their explicit archetypes based on your intention. Projector for projections, and reactor for general message handling by @oskardudycz in 242
  • Added the first implementation of InMemoryMessageProcessors Now you can plug them to any store if you don't need durable checkpointing (e.g. for rebuilding always in-memory projections upon application start) by @oskardudycz in 245
  • Refactored EventStoreDB consumer to reuse Message Consumer abstractions by @oskardudycz in 246
  • Add capability to specify custom checkpoint resolution by consumer or processor This was needed as some stores like EventStoreDB require a complicated checkpoint resolution strategy that needs to be aware of the consumer setup. by @oskardudycz in #247

πŸ“ What's Changed

  • Added order by to PostgreSQL and SQLIte event store readStream queries ensure message ordering. It appears that not always database was able to use sorded index and returned messages out of order, this PR fixes that 241
  • Fixed regression in Workflow typing after introducing messages by @oskardudycz in #244*
  • Trimmed PostgreSQL messages metadata stored in database and passed proper positions to on before commit hook Now only data that's not stored in regular column is kept in metadata by @oskardudycz in #243

πŸ› οΈ CI/CD

  • Converted the emmett-sqlite project to use Vitest. This will allow for future testing of SQLite compatibility in a browser. by @davecosec in 235

New Contributors

Full Changelog: 0.37.0...0.38.0

0.37.0

12 Apr 10:01
Compare
Choose a tag to compare

πŸš€ What's New

  • Added the possibility of handling a sequence of command handlers for a single stream as a single append. Now you can pass multiple decide function and run multiple operation a single batch. by @oskardudycz in #230
  • Added retry on EventStoreDB connection drop for consumer by @oskardudycz in #234

πŸ“š Docs

New Contributors

Full Changelog: 0.36.0...0.37.0

0.36.0

25 Mar 13:05
Compare
Choose a tag to compare

πŸš€ What's New

1. Added the first version of PostgreSQL projections rebuild. It'll go through all events asynchronously applying provided projections. You can use it as:

import { rebuildPostgreSQLProjections } from '@event-driven-io/emmett-postgresql';

const consumer = rebuildPostgreSQLProjections({
  connectionString,
  projection: shoppingCartsSummaryProjectionV2,
});

or for multiple projections:

import { rebuildPostgreSQLProjections } from '@event-driven-io/emmett-postgresql';

const consumer = rebuildPostgreSQLProjections({
  connectionString,
  projections: [
    shoppingCartsSummaryProjectionV2,
    otherShoppingCartsSummaryProjectionV2,
 ],
});

await consumer.start();

It'll perform an in-place rebuild, by default truncating the projection data (that can be configured). It'll stop processing when it reaches the end of the event log.
WARNING: During rebuild, you should not allow to run inline projection, as that can lead to wrong handling. Further releases will make that more bulletproof.
by @oskardudycz in #225

2. InMemoryDatabase can query for multiple documents. That enables filtering and using it actually for both single read and list endpoints. by @stepaniukm in #226

πŸ“ What's Changed

1. Added generic MessageProcessor abstraction to unify signatures and handling between different exact implementations. This is the first step to unify consumer and processors handling across different event stores. by @oskardudycz in #202

πŸ’¬ Discuss this release on Discord

Full Changelog: 0.35.0...0.36.0

0.35.0

19 Mar 13:41
Compare
Choose a tag to compare

πŸš€ What's New

  • Added the first iteration of inMemoryDatabase with handle possibilities This is the first step to support in-memory projections by @stepaniukm in 207
  • Added the first version of SQLite Consumers. Note that this is the first iteration that works with file-based databases. The consumers to in-memory SQLite database are still a work in progress. by @LuccaHellriegel and @oskardudycz in 212, 216.
  • Added devcontainer configuration for consistent development environment for contribution by @tburny in 209

πŸ“ What's Changed

  • Fixed typo in Express.js defaulErrorToProblemDetailsMapping by @ducin in 213
  • Added tests for SQLite eventStore onBeforeCommit hook by @davecosec in 211
  • Fix ESDB consumer filtering of a single stream. Previously it was always subscribing to $all stream. by @mbirkegaard and @oskardudycz in 222
  • Fixed the ProjectionDefinition registration not to conflict with custom event type by @oskardudycz in #223

πŸ“š Docs

  • Moved all entries in API reference into dedicated pages. That should keep them easier accessible and focused by @tburny in 203
  • Eliminated dead links in documentation by @tburny in 210
  • Add Diataxis documentation type to existing documentation. In the longer term this should make easier to reason about intention behind docs and search them by tags. by @tburny in #219

New Contributors

Full Changelog: 0.34.0...0.35.0

0.34.0

01 Mar 21:05
Compare
Choose a tag to compare

πŸš€ What's New

  • Added the first version of SQLite projections and exposed onBeforeCommit hook by @oskardudycz in 205

Full Changelog: 0.33.0...0.34.0