Aggregatetells Ecotone, that this class should be registered as Aggregate Root.
AggregateIdentifieris the external reference point Aggregate.
CommandHandlerdefined on static method acts as factory method. Given command it should return new instance of specific aggregate, in that case new Product.
CommandHandlerdefined on non static class method is place where you would put business logic and state changes