package Ġio . mic ronaut . docs . server . suspend . multiple Ċ Ċ import Ġjak arta . inject . Singleton Ċ import Ġjava . util .* Ċ import Ġkotlin . collections . ArrayList Ċ Ċ @ Singleton Ċ open Ġclass ĠMy Service ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġrepository : ĠCustom Repository Ċ ) Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġevents : ĠMutable List < String > Ġ= ĠCollections . synchronized List ( ArrayList ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġopen Ġsuspend Ġfun Ġsome Call () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠSim ulate Ġaccessing Ġtwo Ġdifferent Ġdata - source Ġrepositories Ġusing Ġtwo Ġtransactions ĊĠĠĠĠĠĠĠ Ġtx 1 () ĊĠĠĠĠĠĠĠ Ġ// ĠCall Ġanother Ġcoroutine ĊĠĠĠĠĠĠĠ Ġrepository . count 1 () ĊĠĠĠĠĠĠĠ Ġrepository . count 2 () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Transaction 1 ĊĠĠĠ Ġopen Ġsuspend Ġfun Ġtx 1 () Ġ{ ĊĠĠĠĠĠĠĠ Ġtx 2 () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Transaction 2 ĊĠĠĠ Ġopen Ġsuspend Ġfun Ġtx 2 () Ġ{ ĊĠĠĠĠĠĠĠ Ġrepository . abc () ĊĠĠĠĠĠĠĠ Ġrepository . xyz () ĊĠĠĠ Ġ} Ċ Ċ } Ċ