Comments (6)
π
Got it!
Great luck to you with your other path! π π
from node-cqrs-eventdenormalizer.
Hi @OrH π
To be honest, I don't know β the code you mentioned was not originally written by us, so we can only speculate.
Theoretically, I'd say, let's change this. However, we have taken over the code, but do not yet feel confident enough to be able to foresee which changes in other places / repos this might need.
So, it's probably better to defer this a little bitβ¦ sorry that I don't have any better news for now π
from node-cqrs-eventdenormalizer.
Hey @goloroden π
Thanks for the quick response.
I see.
From my knowledge of the code and usage (we use it for a while now), if we do this change it shouldn't cause issues in this repo or others, because it will just return the error to the handler to be handled there as other errors are handled, instead of throwing it "outside the handler".
I of course understand that it would probably be better to defer a bit and validate, I don't want to do a change that will break it for others.
I will send a pull request anyway with a change, so if it's decided that this change is good, it will be ready, and I'll follow up on this π
Tagging @adrai here, maybe he will have the time to take a look and approve π
from node-cqrs-eventdenormalizer.
@OrH If I remember correctly, all these process.emit('uncaughtException', e)
calls were introduced to "punish" the developer, because this must be some sort of code error and not a runtime error.
In your example there is some problem in your denormFn, i.e. if you would have some error in this function: https://github.com/thenativeweb/node-cqrs-eventdenormalizer/blob/master/test/integration/fixture/set1/person/viewBuilders/personLeaved.js#L12
Here there should never be any error...
if this is not how you would expect it, I would recommend it to change it in a major version... (cc @robinfehr)
Is there any particular problem why this disturbs you now @OrH ?
from node-cqrs-eventdenormalizer.
Hey @adrai ,
Thanks for responding!
I understand the reason to "punish" the developer, and in our case, an error was actually caused because of a developer mistake but we still don't want it to get "outside" the handling and manage it by rejecting or acking the message in the queue and this can only be done by doing the callback and letting the handler get and handle the error (otherwise we don't have a context).
We also use a prefetch
to define the number of messages that can get to the service until ack/reject in order to not overload the memory of the service until they are handled, so if we don't reject/ack, the messages get stuck, but this might be just how we use it.
It is a good way to divide between errors like that and BuisnessRuleErrors, but for now, I can't see another way how not to get the service "stuck" in cases like these and our usage.
(This also regarding domain commands handling which does the same if I'm not mistaken)
WDYT?
P.S
Thanks a lot for this libs and effort, it's much appreciated and they are super great! π€
from node-cqrs-eventdenormalizer.
As I'm not using it anymore, I'm probably the wrong person to ask π
I just know this was introduced on purpose π€·ββοΈ
So the community needs to decide π
from node-cqrs-eventdenormalizer.
Related Issues (20)
- [Question] how to handle Binaries? HOT 5
- Rebuild viewmodel with eventdenormalizer and node-eventstore HOT 1
- Dealing with missed events HOT 6
- Create a custom repository to store data into a relational database HOT 1
- 'disconnect' event for dynamodb repository not working HOT 2
- replayStreamed not committing into the database HOT 5
- how to trigger multiple ViewBuilders for a single event HOT 3
- Wrong ViewBuilder triggered HOT 3
- No occurredAt field in THE_LAST_SEEN_EVENT HOT 4
- How to use 'meta' in `defineViewBuilder` HOT 1
- Elasticsearch support HOT 8
- write to different repositories for the same definition of the viewbuilder HOT 6
- Reconnect if connect fails? HOT 4
- Elasticseach "Too Many Requests" HOT 16
- ElasticSearch6: vm.actionOnCommit==='update' gives status:404 HOT 8
- ConcurrencyError on replay HOT 11
- Revison guard store horizontal scaling HOT 7
- Update multiple viewmodels question HOT 3
- onEventMissing handling and callback HOT 5
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 node-cqrs-eventdenormalizer.