| 1 | Client -> Keystone | Authentication request | 
| 2 | Keystone -> Token Store | Save token | 
| 3 | Keystone -> Client | Pass authentication token | 
| 4 | Client -> Nova.api | Start instance | 
| 5 | Nova.api -> Database | Create initial entry for instance | 
| 6 | Nova.api -> RabbitMQ | Make rpc.cast to request the new instance | 
| 7 | Nova.api -> Client | Instance request complete | 
| 8 | Nova.schedular -> RabbitMQ | Subscribe new instance request | 
| 9 | Nova.schedular -> Database | Read filtering and weighing information | 
| 10 | Nova.schedular -> Database | Read cluster state | 
| 11 | Nova.schedular -> Database | Save instance state | 
| 12 | Nova.schedular -> RabbitMQ | Rpc.cast to launch instance | 
| 13 | Nova-compute -> RabbitMQ | Subscribe new instance request | 
| 14 | Nova-compute -> RabbitMQ | Rpc.call to Nova-conductor to fetch the instance information | 
| 15 | Nova-conductor -> RabbitMQ | Subscribe new instance request | 
| 16 | Nova-conductor -> RabbitMQ | Read instance state | 
| 17 | Nova-conductor -> RabbitMQ | Publish new instance state | 
| 18 | Nova-compute -> RabbitMQ | Subscribe new instance request | 
| 19 | Nova-compute -> Glance.api | [REST] get Image URI by Image ID from glance | 
| 20 | Glance.api -> Nova-compute | Return image URI | 
| 21 | Nova-compute -> Ceph_mon | Retrieve cluster map | 
| 22 | Ceph_mon -> Nova-compute | Return cluster map | 
| 23 | Nova-compute -> Ceph_rgw | [REST] request for object | 
| 24 | Ceph_rgw -> Ceph_osd | [Socket] get object | 
| 25 | Ceph_rgw -> Nova-compute | Return object | 
| 26 | Nova-compute -> Neutron-server | Allocate and configure the network for the instance | 
| 27 | Neutron-server -> RabbitMQ | Request IP address | 
| 28 | Neutron-server -> RabbitMQ | Request L2 configuration | 
| 29 | Neutron-DHCP-agent -> RabbitMQ | Read request IP address | 
| 30 | Neutron-DHCP-agent -> Dnsmasq | Allocate IP address | 
| 31 | Dnsmasq -> Neutron-DHCP-agent | Reply | 
| 32 | Neutron-DHCP-agent -> RabbitMQ | Reply IP address | 
| 33 | Neutron-server -> RabbitMQ | Read IP address | 
| 34 | Neutron-L2-Agent -> RabbitMQ | Read request for L2 configuration | 
| 35 | Neutron-L2-Agent -> Libvirt | Configure L2 | 
| 36 | Neutron-L2-Agent -> RabbitMQ | Reply to L2 configuration | 
| 37 | Neutron-server -> Database | Save instance network state | 
| 38 | Neutron-server -> Nova-compute | Pass network information | 
| 39 | Nova-compute -> Cinder.api | [REST] get volume data | 
| 40 | Cinder.api -> Keystone | Validate token and permissions | 
| 41 | Keystone -> Cinder.api | Update authentication headers with roles and acl | 
| 42 | Cinder.api -> Nova-compute | Return volume information | 
| 43 | Nova-compute -> Libvirt | Start VM | 
| 44 | Nova-compute -> Libvirt | Update port information | 
| 45 | Nova-compute -> RabbitMQ | Rpc.call to Nova-conductor to fetch the instance information | 
| 46 | Nova-conductor -> RabbitMQ | Subscribe new instance request | 
| 47 | Nova-conductor -> RabbitMQ | Publish new instance state | 
| 48 | Nova-compute -> Libvirt | Pass volume information | 
| 49 | Libvirt -> Ceph_mon | Get cluster map | 
| 50 | Ceph_mon -> Libvirt | Return cluster map | 
| 51 | Libvirt -> Ceph_osd | Mount volume | 
| 52 | VM-instance -> Neutron_metadata_proxy | http rest 169.254.169.254 | 
| 53 | Neutron_metadata_proxy -> Nova-api-metadata | http rest add uuid into X-headers | 
| 54 | Neutron_metadata_proxy -> VM-instance | Return metadata | 
| 55 | Client -> Nova-api | Poll instance state | 
| 56 | Nova.api -> Database | Read instance state | 
| 57 | Database -> Nova.api | Return state | 
| 58 | Nova-api -> Client | Return instance state |