Comments (7)
I am thinking about implementing a FSM data structure, so this kind of problem couldn't happen.
https://github.com/sasa1977/fsm
Makes sense ? Should I proceed an PR ?
from commanded.
Yes, you've discovered an issue in that area. The Commanded.ProcessManagers.ProcessRouter.continue_process_manager
function should ensure that when it starts the process manager it is starting a process that has already been created. The snapshot data for that process must be present.
Feel free to work on a pull request. I use Saลกa's fsm library in the eventstore. Otherwise I'll add this to the roadmap and get it fixed.
from commanded.
Please, add to the roadmap, I still have to study the code to know how to fix this bug
from commanded.
It's in the backlog of the Development roadmap.
from commanded.
Is this still known to be an issue?
from commanded.
@Trevoke Process managers are comprised of two components: a router and many instances. The router subscribes to the event store and routes events to instances, this might require starting a new process or resuming an existing one. A process manager instance handles the event, returning any relevant commands, then mutates its state. It records a snapshot of the mutated state after each event it processes.
I'm in the process of reworking process managers so that they use linked events as their persistence mechanism (event sourcing), with optional state snapshots so they resemble how aggregates persist their state. That change will resolve this issue.
from commanded.
Fixed by #181.
from commanded.
Related Issues (20)
- Update sponsors in BACKERS and README HOT 1
- General design philosophy question: sending email from process manager HOT 4
- update FAQ regarding scheduling HOT 1
- Wiki Testing section is outdated HOT 1
- warning: redefining module Commanded.Serialization.JsonDecoder.Any HOT 2
- Event number gaplessness required?
- Commanded.aggregate_state does not work when aggregate identity has a prefix HOT 10
- Process manager router option not working
- Lessons learned from performance optimization - an unlikely culprit HOT 3
- no function clause matching in Commanded.Commands.Dispatcher.telemetry_stop/3 HOT 1
- Docs questions
- Stacktrace in event handler error? HOT 2
- Paralelization Strategies in EventHandlers
- Should Commanded.Event.Handler support messages from swarm? HOT 2
- Event retention policies?
- please support multiple commanded application with one eventstore HOT 6
- Process Manager state serialization breaks when using a custom TypeProvider with the JsonSerializer
- `Commanded.ProcessManagers.ProcessManager.identity/0` function returns `nil` in unit tests
- no function clause matching in Commanded.Event.Handler.partition_event/4 HOT 1
- EventstoreDB is sunsetting the TCP protocol HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. ๐๐๐
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from commanded.