In reply to mseyunni:
As you use the UVM more, you will find the right time to use a point-to-point communication such as analysis port, and the right time to use a ‘stateful’ shared data, such as a model, stored in a shared config object. There are good cases for both. In the case you describe (and because you are thinking ahead about scalability and reuse) the shared config object containing a small model of ‘state’ is useful, whereas using an analysis port means that the ‘state’ has to be maintained in your monitor, or in your sequencer, rather than somewhere independent and shared between them.
Many new users start to add this functionality to the monitor, or sequencer, or driver, and then hit problems when it gets more complex or they have to reuse. It’s good to think about partitioning, and decoupling, and reuse up front.
I don’t have any examples to point to here of this particular arrangement, it would be useful to add one in the future.