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/DELETEDwill 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