package Ġdk . cache t . car p . common . application . services Ċ Ċ import Ġdk . cache t . car p . common . application . Immutable Ċ import Ġdk . cache t . car p . common . application . Implement As Data Class Ċ import Ġkotlinx . serialization . Pol ymorphic Ċ import Ġkotlinx . serialization . Required ĊĊ Ċ /** Ċ Ġ* ĠAn Ġevent Ġraised Ġby Ġan Ġapplication Ġservice Ġ[ T Application Service ]. Ċ Ġ* Ċ Ġ* ĠIntegration Ġevents Ġneed Ġto Ġbe Ġimmutable . Ċ Ġ*/ Ċ @ Pol ymorphic Ċ @ Immutable Ċ @ Implement As Data Class Ċ interface ĠIntegration Event < out ĠT Application Service Ġ: ĠApplication Service < out ĠT Application Service , Ġ* >> Ċ { ĊĠĠĠ Ġ@ Required ĊĠĠĠ Ġval ĠapiVersion : ĠApi Version ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAll Ġevents Ġrelated Ġto Ġthe Ġsame Ġaggregate ĠID Ġare Ġhandled Ġin Ġorder , ĊĠĠĠĠ Ġ* Ġor Ġno Ġordering Ġis Ġrequired Ġin Ġcase Ġ` null `. ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠIn Ġcase Ġthe Ġevent Ġpert ains Ġto Ġan Ġaggregate Ġroot , ĊĠĠĠĠ Ġ* Ġspecify Ġits ĠID Ġto Ġensure Ġcorrect Ġhandling Ġof Ġbusiness Ġlogic Ġin Ġthe Ġdomain . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġaggregate Id : ĠString ? Ċ } Ċ