Skip to content

Releases: fraktalio/fmodel-ts

v1.3.2

09 Aug 20:01
5ece8c1
Compare
Choose a tag to compare

Fmodel provides just enough tactical Domain-Driven Design patterns, optimized for Event Sourcing and CQRS.

The domain components are fully isolated from the application layer and API-related concerns.
It represents a pure declaration (pure functions) of the program logic.
Decider, View, and Saga

The application components orchestrate the execution of the logic by loading the state, executing domain components, and storing a new state.
EventSourcingAggregate, StateStoredAggregate, MaterializedView, and SagaManager

Install

npm i @fraktalio/fmodel-ts

Available on https://www.npmjs.com/package/@fraktalio/fmodel-ts

Learn more

What's Changed

The most important change is:

  • LatestVersionProvider fix - return Promise by @idugalic in #510 - It is a breaking change.

Full Changelog: v1.3.1...v1.3.2

v1.3.1

19 May 15:20
666635a
Compare
Choose a tag to compare

Fmodel provides just enough tactical Domain-Driven Design patterns, optimized for Event Sourcing and CQRS.

The domain components are fully isolated from the application layer and API-related concerns.
It represents a pure declaration (pure functions) of the program logic.
Decider, View, and Saga

The application components orchestrate the execution of the logic by loading the state, executing domain components, and storing a new state.
EventSourcingAggregate, StateStoredAggregate, MaterializedView, and SagaManager

Install

npm i @fraktalio/fmodel-ts

Available on https://www.npmjs.com/package/@fraktalio/fmodel-ts

Learn more

What's Changed

Full Changelog: v1.3.0...v1.3.1

v1.3.0

30 Dec 13:35
Compare
Choose a tag to compare

Fmodel provides just enough tactical Domain-Driven Design patterns, optimized for Event Sourcing and CQRS.

The domain components are fully isolated from the application layer and API-related concerns.
It represents a pure declaration (pure functions) of the program logic.
Decider, View, and Saga

The application components orchestrate the execution of the logic by loading the state, executing domain components, and storing a new state.
EventSourcingAggregate, StateStoredAggregate, MaterializedView, and SagaManager

Install

npm i @fraktalio/fmodel-ts

Available on https://www.npmjs.com/package/@fraktalio/fmodel-ts

Learn more

What's Changed

  • Split domain API to external and internal more explicitly by @idugalic in #344

Five parameters _Decider is now internal (not exported), in favor of three parameters Decider which is exported. Also, the _Decider is removed from the class hierarchy.

Three parameters _View is now internal (not exported), in favor of two-parameter View which is exported. Also, the _View is removed from the class hierarchy.

We hope to simplify the public API with this approach. We tend to make the right thing to do the easy thing to do.

Full Changelog: v1.2.0...v1.3.0

v1.2.0

17 Sep 17:29
Compare
Choose a tag to compare

Fmodel provides just enough tactical Domain-Driven Design patterns, optimized for Event Sourcing and CQRS.

The domain components are fully isolated from the application layer and API-related concerns.
It represents a pure declaration (pure functions) of the program logic.
Decider, View and Saga

The application components orchestrate the execution of the logic by loading state, executing domain components, and storing a new state.
EventSourcingAggregate, StateStoredAggregate, MaterializedView and SagaManager

Install

npm i @fraktalio/fmodel-ts

Available on https://www.npmjs.com/package/@fraktalio/fmodel-ts

Learn more

Biggest feature in this release - Optimistic Locking

Feature/optimistic_locking by @idugalic in #272

Optimistic locking, also referred to as optimistic concurrency control, allows multiple concurrent users to attempt to update the same resource.

There are two common ways to implement optimistic locking: version number and timestamp. The version number is generally considered to be a better option because the server clock can be inaccurate over time, but we do not want to restrict it to only one option, so we have the generic parameter V acting as a Version.

The optimistic locking mechanism is not leaking into the core Domain layer.

Application modules provide more interfaces and extensions, giving you additional options to compose your unique Domain components with Optimistic Locking formally in place, without changing the Domain components whatsoever.

aggregates-application-layer

materialized-views-application-layer

What's Changed

Full Changelog: v1.1.2...v1.2.0

v1.1.2

05 Sep 16:40
9df191b
Compare
Choose a tag to compare

Fmodel provides just enough tactical Domain-Driven Design patterns, optimized for Event Sourcing and CQRS.

The domain components are fully isolated from the application layer and API-related concerns.
It represents a pure declaration (pure functions) of the program logic.
Decider, View and Saga

The application components orchestrate the execution of the logic by loading state, executing domain components, and storing a new state.
EventSourcingAggregate, StateStoredAggregate, MaterializedView and SagaManager

Install

npm i @fraktalio/fmodel-ts

Available on https://www.npmjs.com/package/@fraktalio/fmodel-ts

Learn more

What's Changed

Full Changelog: v1.1.1...v1.1.2

v1.1.1

20 Jun 08:20
13ff388
Compare
Choose a tag to compare

Fmodel` provides just enough tactical Domain-Driven Design patterns, optimized for Event Sourcing and CQRS.

The domain components are fully isolated from the application layer and API-related concerns.
It represents a pure declaration (pure functions) of the program logic.
Decider, View and Saga

The application components orchestrate the execution of the logic by loading state, executing domain components, and storing a new state.
EventSourcingAggregate, StateStoredAggregate, MaterializedView and SagaManager

What's Changed

New Contributors

Full Changelog: v1.1.0...v1.1.1

v1.1.0

26 Dec 11:42
Compare
Choose a tag to compare

Fmodel provides just enough tactical Domain-Driven Design patterns, optimized for Event Sourcing and CQRS.

The domain components are fully isolated from the application layer and API-related concerns.
It represents a pure declaration (pure functions) of the program logic.
Decider, View and Saga

The application components orchestrate the execution of the logic by loading state, executing domain components, and storing a new state.
EventSourcingAggregate, StateStoredAggregate, MaterializedView and SagaManager

Minor release

  • Increasing modularity and pluggability of the Domain module by introducing interfaces: IDecider, ISaga and IView
  • Increasing modularity and pluggability of the Application module by introducing interfaces IEventSourcingAggregate, IStateStoredAggregate, IMaterializedView and ISagaManager
  • Documentation improved
  • Libraries upgraded

What's Changed

  • Introduce interfaces for Domain components and Application components - Communicates the behaviour! by @idugalic in #82
  • Bump @types/node from 16.11.4 to 17.0.4 by @dependabot in #81
  • Bump typedoc from 0.22.6 to 0.22.10 by @dependabot in #68
  • Bump cspell from 5.12.3 to 5.13.4 by @dependabot in #78
  • Bump eslint-plugin-import from 2.25.2 to 2.25.3 by @dependabot in #83
  • Bump @istanbuljs/nyc-config-typescript from 1.0.1 to 1.0.2 by @dependabot in #84
  • Bump prettier from 2.4.1 to 2.5.1 by @dependabot in #85
  • Bump typescript from 4.4.4 to 4.5.4 by @dependabot in #86

New Contributors

Full Changelog: v1.0.1...v1.1.0

Documentation

https://fraktalio.com/fmodel-ts/

v1.0.1

28 Oct 18:13
Compare
Choose a tag to compare

Fmodel provides just enough tactical Domain-Driven Design patterns, optimized for Event Sourcing and CQRS.

The domain components are fully isolated from the application layer and API-related concerns.
It represents a pure declaration (pure functions) of the program logic.
Decider, View and Saga

The application components orchestrate the execution of the logic by loading state, executing domain components, and storing a new state.
EventSourcingAggregate, StateSstoredAggregate, MaterializedView and SagaManager

Minor release

  • Documentation improved
  • Test coverage improved
  • Libraries upgraded
  • Application module API switched to async/await/Promise

What's Changed

Full Changelog: v1.0.0...v1.0.1

v1.0.0

12 Sep 14:07
Compare
Choose a tag to compare

Fmodel provides just enough tactical Domain-Driven Design patterns, optimized for Event Sourcing and CQRS.

The domain components are fully isolated from the application layer and API-related concerns.
It represents a pure declaration (pure functions) of the program logic.
Decider, View and Saga

The application components orchestrate the execution of the logic by loading state, executing domain components, and storing a new state.
EventSourcingAggregate, StateSstoredAggregate, MaterializedView and SagaManager

Install

npm i @fraktalio/fmodel-ts