---
features:
  - |
    Adds a new ``generation`` column to the consumers table. This value is
    incremented every time allocations are made for a consumer. The new
    placement microversion 1.28 requires that all ``POST /allocations`` and
    ``PUT /allocations/{consumer_uuid}`` requests now include the
    ``consumer_generation`` parameter to ensure that if two processes are
    allocating resources for the same consumer, the second one to complete
    doesn't overwrite the first. If there is a mismatch between the
    ``consumer_generation`` in the request and the current value in the
    database, the allocation will fail, and a 409 Conflict response will be
    returned. The calling process must then get the allocations for that
    consumer by calling ``GET /allocations/{consumer}``. That response will now
    contain, in addition to the allocations, the current generation value for
    that consumer. Depending on the use case, the calling process may error; or
    it may wish to combine or replace the existing allocations with the ones it
    is trying to post, and re-submit with the current consumer_generation.