Информация об изменениях

Сообщение Re[39]: Помогите правильно спроектировать микросервисное при от 17.02.2026 16:55

Изменено 17.02.2026 16:57 ·

Re[39]: Помогите правильно спроектировать микросервисное при
Здравствуйте, Sinclair, Вы писали:

S>·>мне неясно.

S>Там ничего неясного нет — просто добавляется ещё один предикат во where, а заказ распадается на reserved и residual.
Т.е. в одной транзакции будут roundtrips между субд и приложением для каждого товара?
Мне кажется, что
begin transaction;
update stock ...;
insert into reservationItems(orderId, productId, quantity) values(42, 17, 10);
commit transaction;//constraint checked

begin transaction;
update stock ...;
insert into reservationItems(orderId, productId, quantity) values(42, 5, 1);
commit transaction;//constraint checked

будет выполняться быстрее, чем
begin transaction;
update stock ... where available>0;
//check result?
update stock ... where available>0;
//check result?
insert into reservationItems(orderId, productId, quantity) values(42, 17, 10);
insert into reservationItems(orderId, productId, quantity) values(42, 5, 1);
commit transaction
Re[39]: Помогите правильно спроектировать микросервисное при
Здравствуйте, Sinclair, Вы писали:

S>·>мне неясно.

S>Там ничего неясного нет — просто добавляется ещё один предикат во where, а заказ распадается на reserved и residual.
Т.е. в одной транзакции будут roundtrips между субд и приложением для каждого товара?
Мне кажется, что
begin transaction;
update stock ...;
insert into reservationItems(orderId, productId, quantity) values(42, 17, 10);
commit transaction;//constraint checked

begin transaction;
update stock ...;
insert into reservationItems(orderId, productId, quantity) values(42, 5, 1);
commit transaction;//constraint checked

будет выполняться быстрее, чем
begin transaction;
update stock ... where available>0;
//check UpdateCount?
update stock ... where available>0;
//check UpdateCount?
insert into reservationItems(orderId, productId, quantity) values(42, 17, 10);
insert into reservationItems(orderId, productId, quantity) values(42, 5, 1);
commit transaction