Sto facendo fatica a trovare soluzioni a un problema che trovo in un sistema concorrente (attualmente sto utilizzando il Modello attore). Fondamentalmente ho una struttura diamantata di attori:
QuindiDinviamessaggiaCeB,chediconseguenzainvianomessaggiaA.Ogniparteesegueunaqualcheformadioperazionedopoaverricevutounmessaggio.
Adesempio,definiscialcuneoperazioniarbitrarie,adesempio:
- D:generaunnumerocasuale
- C:applicaf(x)=x-1
- B:applicaf(x)=2x
- A:applicaf(c,b)=(c+b)/2,dovec,bsonoirisultatidi
C,B
DopocheAapplicalasuaoperazione,pubblicailrisultato.OravoglioApubblicaresolounrisultato,seharicevutoilrisultatosiadiBsiadiCperunparticolaremessaggiodaD.Quindiseavessimounindiceincrementaleiegeneriinumerix_i,vogliosoloAperoperaresuc_k,b_jsek==j.
Unaproprietàdelmiosistemacherendequestoproblemaunpo'piùdifficileèl'esistenzadellalimitazione.Leoperazionipossonoesserecostosee/olafrequenzaconcuiDinviamessaggipuòessereelevata,quindiperevitarechelecodecrescanoall'infinito,ciòsembranecessario.Misembracheciòeliminerebbequalsiasisoluzionedelmodulo"contrassegna il messaggio da D e esegua solo in A se ha ricevuto 2 messaggi con lo stesso marchio", poiché non posso garantire di riceverli mai 2 messaggi.
La mia esperienza in questo settore è abbastanza limitata, quindi qualsiasi risorsa o modello che si occupi di un problema simile come questo sarebbe utile.
