Skip to content

Comments

feat: completion of Atomic reservation and order life cycle#8

Merged
codewithme-py merged 1 commit intomainfrom
feat/inventory-and-orders-layer
Feb 21, 2026
Merged

feat: completion of Atomic reservation and order life cycle#8
codewithme-py merged 1 commit intomainfrom
feat/inventory-and-orders-layer

Conversation

@codewithme-py
Copy link
Owner

Atomicity of the database: Implemented strict transactional blocking SELECT ... FOR UPDATE in inventory and order services to prevent Race Conditions for parallel purchases.

Protection against DDoS and spam: Integrated Dual-Layer Lua Rate Limiter and decorator @idempotent (via Redis) to protect key endpoints for booking and order creation.

Orders API: A router with full-cycle endpoints has been added:

  • POST /orders/ (Creating an order from the reservation)

  • POST /orders/{id}/pay (Successful payment -> write-off of goods)

  • POST /orders/{id}/cancel (Cancel -> return of goods to the warehouse)

Migrations: Updated database types and schemes (removed Nullable from the product price, added status COMPLETED in OrderStatus
Type security: Refactoring of models and Pydantic schemes was carried out. The code completely passes the strict checks of mypy and ruff.

The logic of API responses has been improved: transition from unconditional 404 to 409 Conflict when trying to change the inappropriate order status.

@codewithme-py codewithme-py merged commit f2ad0da into main Feb 21, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant