Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • 17:46
    jeremydmiller commented #2234
  • 17:46
    jeremydmiller commented #2234
  • 17:22
    oskardudycz commented #2234
  • 17:22
    oskardudycz commented #2234
  • 16:15
    hartmark commented #108
  • 16:13
    hartmark opened #108
  • 14:00
    jeremydmiller commented #2234
  • 14:00
    jeremydmiller commented #2234
  • 13:57
    jeremydmiller commented #2234
  • 13:57
    jeremydmiller commented #2234
  • 09:07
    bartelink commented #2234
  • 09:07
    bartelink commented #2234
  • 08:58
    bartelink commented #2234
  • 08:58
    bartelink commented #2234
  • 08:52
    bartelink commented #2234
  • 08:52
    bartelink commented #2234
  • 08:44
    thinkbeforecoding commented #2234
  • 08:44
    thinkbeforecoding commented #2234
  • 06:47
    oskardudycz commented #2234
  • 06:47
    oskardudycz commented #2234
Eric Green
@ericgreenmix
would be great to be able to do Identity<MyEvent>(e => e.SomeId ?? default); without writing a CustomGrouper
Oskar Dudycz
@oskardudycz
I think that returning null from apply could help in that, but I’m not sure
Jeremy D. Miller
@jeremydmiller
Why do you have an event with a nullable like that? Shouldn't that be two different events if they have different meaning?

I think that returning null from apply could help in that, but I’m not sure

I'm gonna be a hard no on that.

Oskar Dudycz
@oskardudycz
I thought that’s already the case 😅
Jeremy D. Miller
@jeremydmiller
I don't even know what nulling the return to Apply would even do.
Oskar Dudycz
@oskardudycz
Fair 🙂
I thought that @Hawxywas doing something like that, but I may mix that with something else
Eric Green
@ericgreenmix
The event doesn’t have different meaning. It is from a different Aggregate, that may or may not have the SomeId I am referring to. If it does though, then we need to apply it to the Projection
Jeremy D. Miller
@jeremydmiller
Okay, so I guess I'm okay with the additional behavior to filter out if the identity is effectively null or Guid.Empty or default.
Eric Green
@ericgreenmix
awesome. I will try to PR that by Monday afternoon
Oskar Dudycz
@oskardudycz
I’m not convinced, this sounds a bit magical to me
Eric Green
@ericgreenmix
I wouldn’t consider that magical. Seems way cleaner than the current alternative, where any default or null Id will all be applied to the same document
Oskar Dudycz
@oskardudycz
If we pass null, then which document body will it try to chose?
Jeremy D. Miller
@jeremydmiller
Or you could have an overload w/ a second argument that filters out the events beyond just the type. Make it more explicit.
Oskar Dudycz
@oskardudycz
I know that some people have "global" projections where they're having just a single report per system and they're using constant id
that may be guid.empty
You could also have if in the Apply method
Jeremy D. Miller
@jeremydmiller
The old <=V3 ViewProjection was an unholy nightmare to support. Keeping magic out of the newer version would help
Oskar Dudycz
@oskardudycz
Tbt, for such case I'd vote for using custom filter or grouper
Jeremy D. Miller
@jeremydmiller

You could also have if in the Apply method

Kinda too late, because the aggregation thinks there's supposed to be a projected document with that Id

Tbt, for such case I'd vote for using custom filter or grouper

I think I agree with that.

Eric Green
@ericgreenmix
I don’t mind the idea of a second argument to filter
Oskar Dudycz
@oskardudycz

Kinda too late, because the aggregation thinks there's supposed to be a projected document with that Id

Right, my bad.

Eric Green
@ericgreenmix
we only do this a handful of times in our projections, so I could also be convinced that just handling this with a custom grouper is the way to go
Oskar Dudycz
@oskardudycz
Then I think that's better for now. If there's bigger hassle or more people will have that case, then maybe as some opt-in feature this could be a pragmatic help.
Jeremy D. Miller
@jeremydmiller
It'd help if we could do some kind of survey of how folks are trying to group events in cross-stream aggregations out in the wild. I know I've been constantly shocked at what people actually do.
Oskar Dudycz
@oskardudycz
In ESDB I saw people having a single stream with 160 millions of events
and building it and applying on it built-in projections 😎
People do crazy stuff
Eric Green
@ericgreenmix
not a bad idea. We do some interesting things in various projections (which I haven’t got to porting yet). A lot of the times the complexities we hit are from poor bounded contexts being drawn in the beginning
lucassouza690
@lucassouza690
image.png
hello again i have another question. i am trying to do this
but seems to me marten doesnt recognize any()
this Keys is a dictionary btw
image.png
I also tried this but no success
marten simply ignores that
Jeremy D. Miller
@jeremydmiller
Yeah, I don't think we support that kind of Linq query within a Dictionary like that
lucassouza690
@lucassouza690
sad
Jeremy D. Miller
@jeremydmiller
I take pull requests
lucassouza690
@lucassouza690
i am getting this : 'The sub query is not sourced from a supported collection type' what would be this?
Jeremy D. Miller
@jeremydmiller
Can you post the stacktrace?
Vinko Vrsalovic
@koide
Aren't Marten's AspNetCore examples on the docs missing mentioning Weaver and adding its using? I was lost there for a while. Happy to supply a PR, but wanted to know if I'm right or if I missed something.
Jeremy D. Miller
@jeremydmiller
Maybe start by explaining what in the world "Weaver" is?
If you mean "Weasel", that's a transitive dependency of Marten itself, so there isn't anything you should have to do other than add the Marten Nuget as a package reference.
2 replies
Jeremy D. Miller
@jeremydmiller
@oskardudycz @mysticmind and anyone interested in the Marten event store, could you weigh in on #2233 and #2234 please?
Babu Annamalai
@mysticmind
Sure @jeremydmiller, will run through the above and revert later today.
Oskar Dudycz
@oskardudycz
I like it, I added some thoughts and small suggestions, but those two things should be really beneficial to users 🙂
For #2333, I was talking about that for a long time but probably wasn’t able to articulate it enough clearly 🙂
Peter Kneale
@PeterKneale
I'm trying to save an aggregate that maintains a private internal list, ie
public class Account : BaseEntity, IAggregateRoot { private IList<Reservation> _reservations;
When saving the aggregate the contents of _reservations aren't present in the db..
I've tried
options.UseDefaultSerialization(nonPublicMembersStorage: NonPublicMembersStorage.All);
Do i need to use a custom serialiser for this?