diff --git a/Documentation/FlowDiagram.puml b/Documentation/FlowDiagram.puml
index 288b565f4542eff08ec4397057974fce7fe507f6..2334bd61820cbec2071d2063a1eb824a72aa0d4d 100644
--- a/Documentation/FlowDiagram.puml
+++ b/Documentation/FlowDiagram.puml
@@ -1,39 +1,67 @@
-@startuml FlowDiagram
-actor        "ACTOR"              as actor
+@startuml
+actor        "USER"              as actor
 participant  "OSOM"               as osom
 participant  "TMF API"            as tmf_api
-queue        amq                  as amq
+queue        "Message Bus"                  as amq
 participant  "METRICO" as metrico
-participant  prometheus           as prom
+participant  Prometheus           as prom
 
 
-actor   -> tmf_api: CREATE: Service Order Monitoring aaS
-osom    -> osom: PROCESS ORDER
+actor   -> tmf_api: Create Service Order Monitoring aaS
+osom    -> osom: Process order
 
-osom    -> tmf_api: CREATE: service instance of monitoring aaS (RFS)(Initial Status: Reseved)
-osom    -> tmf_api: CREATE: service instance of monitoring aaS (CFS)(Initial Status: Reseved)
+osom    -> tmf_api: Create Service instance of monitoring aaS (CFS) (Initial Status: Reserved)
+osom    -> tmf_api: Create Service instance of monitoring aaS (RFS) (Initial Status: Reserved)
+osom    -> amq: Create Resource Message \n<color:green>jms:queue:CATALOG.ADD.RESOURCE \n<color:green>payload: Status = "Reserved" & Characteristic _MT_MCJ_REF = "PENDING"
+amq     -> tmf_api: LISTENS FOR: Create Resource Message \n<color:green>jms:queue:CATALOG.ADD.RESOURCE
+tmf_api -> tmf_api: Create Resource
+tmf_api --> amq: RESPONSE: Resource
+amq     --> osom: RESPONSE: Resource
 
-osom    -> amq: CREATE: TMF628 Measurement Collection Job \n<color:green>queue:PM_MEASUREMENT_COLLECTION_JOB_ADD \n<color:green>payload: MeasurementCollectionJobFVO
-amq     -> tmf_api: CREATE: TMF628 Measurement Collection Job \n<color:green>queue:PM_MEASUREMENT_COLLECTION_JOB_ADD \n<color:green>payload: MeasurementCollectionJobFVO (Here I can find the MCJ ID)
-tmf_api     -> amq: CREATE: TMF628 Measurement Collection Job \n<color:green>queue:PM_MEASUREMENT_COLLECTION_JOB_ADD \n<color:green>payload: MeasurementCollectionJob (Here I can find the MCJ ID)
-osom -> tmf_api: CREATE: Resource Instance (Initial Status: Reseved)(associate to RFS)(add the MCJ UUID)
-amq     -> osom: CREATE: TMF628 Measurement Collection Job \n<color:green>queue:PM_MEASUREMENT_COLLECTION_JOB_ADD \n<color:green>payload: MeasurementCollectionJob (Here I can find the MCJ ID)
-tmf_api -> amq: PUBLISH EVENT: Monitoring Job Created\n<color:green>topic: PM_MEASUREMENT_COLLECTION_JOB_CREATED\n<color:green>payload: Measurement Collection Job Ref
-amq     -> metrico: RECEIVE EVENT: Monitoring Job Created\n<color:green>topic: PM_MEASUREMENT_COLLECTION_JOB_CREATED\n<color:green>payload: Measurement Collection Job Ref
-metrico -> tmf_api: fetch Measurement Collection Job from ref
-tmf_api -> metrico: fetch Measurement Collection Job from ref
-metrico    -> metrico: create METRICO job
-metrico    -> amq: UPDATE Measurement Collection Job Status
+osom    -> amq: Create TMF628 Measurement Collection Job Message \n<color:green>jms:queue:PM.MEASUREMENTCOLLECTIONJOB.ADD \n<color:green>payload: MeasurementCollectionJobFVO
 
+amq     -> tmf_api: LISTENS FOR: Create TMF628 Measurement Collection Job Message \n<color:green>jms:queue:PM.MEASUREMENTCOLLECTIONJOB.ADD
+tmf_api -> tmf_api: Create Measurement Collection Job (MCJ)
+tmf_api -> amq: Publish Measurement Collection Job Creation Event\n<color:green>jms:topic:EVENT.MEASUREMENTCOLLECTIONJOB.CREATE\n<color:green>payload: Measurement Collection Job Ref
+tmf_api --> amq: RESPONSE: Create TMF628 Measurement Collection Job Message \n<color:green>jms:queue:PM.MEASUREMENTCOLLECTIONJOB.ADD \n<color:green>payload: MeasurementCollectionJob (Includes MCJ ID)
 
-group "java job" 
-    metrico -> metrico   : set how often job is done
-    metrico -> prom   : send prom req
-    prom -> metrico   : reply to prom req
-    metrico -> metrico   : parse data from reply and cast them to data access endpoint
+amq     --> osom: RESPONSE: MeasurementCollectionJob
+osom    -> tmf_api: Update RFS \n<color:green>(Characteristic _MT_MCJ_REFID = MCJ ID) \n<color:green>(associate with RFS)
+
+amq     -> metrico: LISTENS FOR: Measurement Collection Job Creation Event\n<color:green>jms:topic:EVENT.MEASUREMENTCOLLECTIONJOB.CREATE\n<color:green>payload: Measurement Collection Job Ref
+metrico -> amq: Retrieve Measurement Collection Job by ID\n<color:green>jms:queue:PM.MEASUREMENTCOLLECTIONJOB.GET_BY_ID\n<color:green>payload: Measurement Collection Job ID
+
+amq     -> tmf_api: LISTENS FOR: Retrieve Measurement Collection Job by ID\n<color:green>jms:queue:PM.MEASUREMENTCOLLECTIONJOB.GET_BY_ID
+tmf_api --> amq: RESPONSE: Measurement Collection Job
+
+amq     --> metrico: RESPONSE: Measurement Collection Job
+
+metrico -> metrico: create METRICO job from Measurement\nCollection Job and get its state
+
+metrico -> amq: Update Measurement Collection Job Message \n<color:green>jms:queue:PM.MEASUREMENTCOLLECTIONJOB.UPDATE\n<color:green>payload: Measure Collection Job (update execution state)
+amq     -> tmf_api: LISTENS FOR: Update Measurement Collection Job Message \n<color:green>jms:queue:PM.MEASUREMENTCOLLECTIONJOB.UPDATE
+
+metrico -> amq: Retrieve Service by ID Message\n<color:green>jms:queue:CATALOG.GET.SERVICE\n<color:green>payload: MCJ Producing Application ID (RFS ID)
+amq     -> tmf_api: LISTENS FOR: Retrieve Service by ID Message\n<color:green>jms:queue:CATALOG.GET.SERVICE
+tmf_api --> amq: RESPONSE: Service (RFS with related Resource)
+amq     --> metrico: RESPONSE: Service (RFS with related Resource)
+
+
+metrico -> amq: Update Resource Message\n<color:green>jms:queue:CATALOG.UPD.RESOURCE\n<color:green>payload: Characteristic _MT_MCJ_REF = MCJ ID \n<color:green>& Status = "AVAILABLE"
+amq     -> tmf_api: LISTENS FOR: Update Resource Message\n<color:green>jms:queue:CATALOG.UPD.RESOURCE
+tmf_api --> amq: RESPONSE: Updated Resource
+amq     --> metrico: RESPONSE: Updated Resource
+
+group "METRICO job" 
+    metrico -> metrico   : Set job schedule and interval
+    metrico -> prom   : Send Prometheus query
+    prom    --> metrico   : Prometheus response
+
+    metrico -> amq    : Update Service Message\n<color:green>jms:queue:CATALOG.UPD.SERVICE \n<color:green>payload: Characteristic named MCJ.outputFormat \n<color:green>is updated with Prometheus response
+    amq  -> tmf_api: LISTENS FOR: Update Service Message\n<color:green>jms:queue:CATALOG.UPD.SERVICE
     
-    metrico -> amq    : UPDATE: Related service to the Service Inventory\n<color:green>queue:jms:queue:CATALOG.UPD.SERVICE \n<color:green>payload: ServiceUpdate, serviceId
-    amq  -> tmf_api: UPDATE: Related service to the Service Inventory\n<color:green>queue:jms:queue:CATALOG.UPD.SERVICE \n<color:green>payload: ServiceUpdate, serviceId
 end
 
-@enduml
\ No newline at end of file
+tmf_api -> actor: Retrieve Monitoring data from the updated Service
+
+@enduml