Events

Bus and Source Configuration

Domain events are published to an AWS EventBridge bus (configured per environment). Every event carries the source identifier for the Inventory Service and an event type (DetailType) that downstream consumers subscribe to. Each event also conveys the tenant, the acting user, the affected entity type and id, and before/after snapshots for updates. Publishing is fire-and-forget: a failure to publish is logged and never blocks the business operation. In test/in-memory mode no real events are emitted.

Published Events

DetailType Trigger
Location.CREATED / Location.UPDATED / Location.DELETED Location lifecycle
SKU.CREATED / SKU.UPDATED / SKU.DELETED SKU lifecycle
Lot.CREATED / Lot.UPDATED / Lot.DELETED Lot lifecycle
inventoryPositionCreated / inventoryPositionCreationFailed / inventoryQuantityAdjusted Position create/adjust
Reservation.CREATED / .CREATION_FAILED / .STATUS_CHANGED / .CANCELLED / .UPDATED Reservation lifecycle
Reservation.RESERVED / Reservation.RELEASED Result of an inbound reservation event (block/cancel)
InventoryTransaction.CREATED / .CREATION_FAILED / .STATUS_CHANGED Transaction lifecycle
Transfer.SHIPPED / .RECEIVED / .CANCELLED / .DELETED; inventory.transfer.created / .creation_failed Transfer lifecycle
LocationChannelPolicy.CREATED / .CREATION_FAILED / .UPDATED / .DELETED Channel policy lifecycle
replenishmentOrder.created / .submitted / .approved / .rejected / .cancelled / .updated / .deleted / .*_failed Replenishment order lifecycle
replenishmentPolicy.created / .updated / .deleted / .*_failed Replenishment policy lifecycle
instanceCreated / instanceUpdated / instanceDeleted (+ *Failed) Instance lifecycle
inventory.availability.checked / .check_failed / .multi_sku_checked Availability checks

Event naming is intentionally inconsistent across domains (Entity.ACTION, entity.action.snake, and bare camelCase all appear). Subscribers should match the exact DetailType values above.

Consumed Events

The service reacts to order-lifecycle events (typically from OMS):

Inbound DetailType Action
INVENTORY_BLOCK Reserve/block stock per line item
INVENTORY_RESERVATION_CONFIRM PENDING to CONFIRMED after payment
INVENTORY_SHIPMENT_UPDATE Fulfil reservations on shipment
CANCEL_INVENTORY Release previously blocked stock

After processing, the handler emits Reservation.RESERVED (success) or Reservation.RELEASED (failure) back to the bus. Bulk import/export orchestration events (batch.* / batch.export.*) are also handled. There are no message-queue consumers.

Integration Notes

  • SKU events do not currently match DetailType rules. SKU create/update/delete events are published in a raw shape that leaves the DetailType unset, so SKU.CREATED/UPDATED/DELETED will not match a DetailType-based subscription until remediated. All other domains publish correctly.
  • Test/in-memory mode emits no real events — events are recorded in memory only and nothing is delivered to the bus.

Revision History
2026-08-05 | AN – Page created and uploaded the contents