-
Notifications
You must be signed in to change notification settings - Fork 7
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
Problem: Define Miminum Metadata of Messages #42
Comments
A list of @skleanthous suggestions:
runtime requires the above for: The above can also be used for debugging: |
Other things that might be of interrest;
|
Per @skleanthous, 9 above should be about concurrency instead of idempotency.
|
I would domain qualify the message name - i.e Bank.Account.InterestAccrued in case different domains/entities use the same word to describe different events |
@MerrionComputing The idea is that you put the domain name in metadata 2. Note that this doesn't necessarily have to be In some cases, I found it better to just use the domain, or domain and subdomain name, only in metdata 2 and leave the consumer explicitly map that to a message to get deserialized, although of course this is context-specific. Regardless of what you put in metadata 2, I found splitting those two useful because it very often helps in debugging issues because it allows you to easily filter messages by name or by domain to enhance visibility. |
Thinking about having a qualifier for the message as well: |
@ylorph That's an interesting point. A couple of thoughts on that:
Personally I see it like this:
As I said though, using something more in the message name isn't necessarily a bad idea, it comes with some tradeoffs. Splitting the service name is something that I recommend (as I said above) mostly to help with debugging, and helps me when I'm joining data to get context of a change. |
|
we've been leaning into recorded_at The other time they may vary widely is when "the system was down when we did this in the real world" or some other connectivity issue like "we did this 1000 miles from civilization and recorded it when we returned". |
When doing this remember that you want two ways of reading things (possibly three, more on that below). As-at and as-of This can be done in a generic way and should apply to all event streams. Basically one is usually just read events forward (not occasionally connected might end up with two like the latter) ... the other is read events forward ... sort ... then return. Once you have this you will be amazed how many problems fit pretty well into it. |
https://twitter.com/SKleanthous/status/1197272391304523776
https://github.com/cloudevents/spec/blob/master/spec.md
See also
#29
#33
The text was updated successfully, but these errors were encountered: