# Technical Reference Deep Dives

The nova project is large, and there are lots of complicated parts in it where it helps to have an overview to understand how the internals of a particular part work.

## Internals

The following is a dive into some of the internals in nova.

- AMQP and Nova: How nova uses AMQP as an RPC transport

- Scheduling: The workflow through the scheduling process

- Scheduler hints versus flavor extra specs: The similarities and differences between flavor extra specs and scheduler hints.

- Live Migration: The live migration flow

- Services, Managers and Drivers: Module descriptions for some of the key modules used in starting / running services

- Virtual Machine States and Transitions: Cheat sheet for understanding the life cycle of compute instances

- Threading model: The concurrency model used in nova, which is based on eventlet, and may not be familiar to everyone.

- Available versioned notifications: The notifications available in nova.

- ComputeDriver.update_provider_tree: A detailed explanation of the `ComputeDriver.update_provider_tree` method.

- Upgrade checks: A guide to writing automated upgrade checks.

- Database migrations: A guide to writing database migrations, be they online or offline.

- Conductor as a place for orchestrating tasks

Todo

Need something about versioned objects and how they fit in with conductor as an object backporter during upgrades.

- Filtering hosts by isolating aggregates: Describes how the placement filter works in nova to isolate groups of hosts.

- Attaching Volumes: Describes the attach volume flow, using the libvirt virt driver as an example.

- Driver BDM Data Structures: Block Device Data Structures

- Libvirt virt driver OS distribution support matrix: Libvirt virt driver OS distribution support matrix

## Debugging

- Guru Meditation Reports: Inspired by Amiga, a way to trigger a very comprehensive dump of a running service for deep debugging.

## Forward Looking Plans

The following section includes documents that describe the overall plan behind groups of nova-specs. Most of these cover items relating to the evolution of various parts of nova’s architecture. Once the work is complete, these documents will move into the “Internals” section.

If you want to get involved in shaping the future of nova’s architecture, these are a great place to start reading up on the current plans.

- REST API Policy Enforcement: How we want policy checks on API actions to work in the future

- Nova Stable REST API: What stable API means to nova

- Scheduler Evolution: Motivation behind the scheduler / placement evolution

## Additional Information

- Glossary: A quick reference guide to some of the terms you might encounter working on or using nova.

this page last updated: 2026-04-14 07:16:25

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.

found an error? report a bug