Giter Club home page Giter Club logo

Comments (6)

OrH avatar OrH commented on June 17, 2024 1

πŸ˜„

Got it!

Great luck to you with your other path! πŸ™ πŸš€

from node-cqrs-eventdenormalizer.

goloroden avatar goloroden commented on June 17, 2024

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.

OrH avatar OrH commented on June 17, 2024

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.

adrai avatar adrai commented on June 17, 2024

@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.

OrH avatar OrH commented on June 17, 2024

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.

adrai avatar adrai commented on June 17, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.