So guess that I have this kind of domain events:

```
class BookChangedName...
class BookType1ChangedName extends BookChangedName...
class BookType2ChangedName extends BookChangedName...

```

Is that better or:

```
class BookChangedName{
    enum bookType = BOOK_TYPE_1;
}

```

Since they say use inheritance only if there is a different behavior between classes, I assume here I would go with enum sample (case #2) - since Domain Events are just plain simple DTOs. 

But again, in my domain this different types of events have different meaning (different processing paths). So in case I use example #1 i would end up with a lot of:

```
if(event instanceof BookType1ChangedName){
   //do smth in domain
}
else if(event instanceof BookType2ChangedName){
   //do smth in domain
}

```

and also I could not be as explicit as:

```
when(BookType1ChangedName event){...

```

I would have to do some kind of pre-processing like:

```
@EventHandler(matcher_pattern = event->event.bookType==BOOK_TYPE_1)
when(BookChangedNameevent){...

```