Si tratta di uno stile architetturale che può essere utilizzato come base di un'[[Design pattern|architettura software]]. I [[sottosistema (software)|sottosistemi]] che compongono il [[software]] accedono e modificano una singola struttura dati chiamata appunto '''repository'''. I vari sottosistemi sono fra loro "[[indipendenza relativa|relativamente indipendenti]]", in quanto interagiscono solo mediante il repository. Il [[flusso di controllo]] è dettato o dal repository, mediante un cambiamento dei dati in esso memorizzati, o dai singoli sottosistemi (flusso di controllo indipendente).