Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor publish events towards engine scope #44

Open
5 tasks
nitram509 opened this issue Sep 12, 2022 · 3 comments
Open
5 tasks

refactor publish events towards engine scope #44

nitram509 opened this issue Sep 12, 2022 · 3 comments
Labels
help wanted Extra attention is needed
Milestone

Comments

@nitram509
Copy link
Owner

motivation

being more compatible with BPMN standard

acceptance criteria

  • published messages are 'global' on the engine (not on the instance)
  • method is renamed
  • documentation is extended, minimum mentioned, that IDs of messages must be unique in order to match the right process
    • tbc. what's the matching order? first come first served?
    • tbc. how to deal with different versions of a process
@nitram509 nitram509 added the help wanted Extra attention is needed label Sep 12, 2022
@nitram509 nitram509 added this to the v0.3.0 milestone Sep 12, 2022
@lastchiliarch
Copy link

It's seems that we need to do the message correlation instead of publishing message event to specifiy process instance.

useful docs : https://docs.camunda.io/docs/components/concepts/messages/

@nitram509
Copy link
Owner Author

Hi,

that's an interesting thought, yes.
Message correlation is a powerful feature in Zeebe/Camunda v8.
I learned/observed, that people do struggle with it in the beginning, but once understood, it's very powerful.
Since lib-bpmn-engine offers a somewhat different execution context, I consider offering both options.
Meaning, two functions could exists in parallel:

  • PublishEventForInstance()
  • PublishEventWithCorrelationKey()

@nitram509
Copy link
Owner Author

Update,

adding/registering a task handler has similar concepts, when it comes to the possibilities of how to do it.
the fluent API as implemented in https://github.com/nitram509/lib-bpmn-engine/blob/main/pkg/bpmn_engine/task_handler.go
seems to be very good fitting, as it guides the usage better and also allows more minimal invasive enhancements over time.

So, we should use such an approach here as well.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

2 participants