Outbox: модуль-владелец пишет событие в той же транзакции, что и данные; крон раз в минуту вызывает подписчиков. Событие — ещё и журнал того, что произошло в системе.
Поток событий
| № | Событие | Объект | Данные | Создано | Обработано | Кто |
|---|---|---|---|---|---|---|
| 68 | part.scrapped | plan_parts #337 | {"part_id": 337, "decision": "relaunch", "defect_id": 6} | 05.11.2026 11:24 | 05.11.2026 12:05 | — |
| 67 | part.relaunched | plan_parts #759 | {"new_part_id": 759, "parent_part_id": 337} | 05.11.2026 11:54 | 05.11.2026 12:05 | — |
| 66 | part.scrapped | plan_parts #550 | {"part_id": 550, "decision": "scrap", "defect_id": 4} | 07.11.2026 11:43 | 07.11.2026 11:30 | — |
| 65 | part.scrapped | plan_parts #124 | {"part_id": 124, "decision": "relaunch", "defect_id": 3} | 08.11.2026 11:40 | 08.11.2026 11:28 | — |
| 64 | part.relaunched | plan_parts #758 | {"new_part_id": 758, "parent_part_id": 124} | 08.11.2026 11:27 | 08.11.2026 11:41 | — |
| 63 | part.scrapped | plan_parts #221 | {"part_id": 221, "decision": "relaunch", "defect_id": 1} | 10.11.2026 11:11 | 10.11.2026 12:10 | — |
| 62 | part.relaunched | plan_parts #757 | {"new_part_id": 757, "parent_part_id": 221} | 10.11.2026 11:17 | 10.11.2026 11:15 | — |
| 61 | order.received | sales_orders #16 | {"lines": 1, "crm_order_id": 51015} | 10.11.2026 14:17 | 10.11.2026 14:41 | — |
| 60 | order.received | sales_orders #15 | {"lines": 1, "crm_order_id": 51014} | 10.11.2026 14:30 | 10.11.2026 14:53 | — |
| 59 | order.received | sales_orders #14 | {"lines": 1, "crm_order_id": 51013} | 09.11.2026 14:32 | 09.11.2026 14:23 | — |
| 58 | prod_order.launched | plan_prod_orders #13 | {"prod_order_id": 13} | 10.11.2026 14:54 | 10.11.2026 14:26 | — |
| 57 | order.confirmed | sales_orders #13 | {"order_id": 13} | 09.11.2026 14:35 | 09.11.2026 14:50 | — |
| 56 | order.received | sales_orders #13 | {"lines": 1, "crm_order_id": 51012} | 08.11.2026 14:29 | 08.11.2026 15:07 | — |
| 55 | prod_order.launched | plan_prod_orders #12 | {"prod_order_id": 12} | 08.11.2026 14:11 | 08.11.2026 14:50 | — |
| 54 | order.confirmed | sales_orders #12 | {"order_id": 12} | 07.11.2026 14:31 | 07.11.2026 14:59 | — |
| 53 | order.received | sales_orders #12 | {"lines": 1, "crm_order_id": 51011} | 06.11.2026 14:22 | 06.11.2026 14:58 | — |
| 52 | prod_order.launched | plan_prod_orders #11 | {"prod_order_id": 11} | 06.11.2026 14:37 | 06.11.2026 14:58 | — |
| 51 | order.confirmed | sales_orders #11 | {"order_id": 11} | 05.11.2026 14:14 | 05.11.2026 14:20 | — |
| 50 | order.received | sales_orders #11 | {"lines": 1, "crm_order_id": 51010} | 04.11.2026 14:55 | 04.11.2026 14:57 | — |
| 49 | material.issued | wh_moves #35 | {"move_id": 35, "prod_order_id": 10} | 04.11.2026 15:02 | 04.11.2026 14:17 | — |
| 48 | prod_order.launched | plan_prod_orders #10 | {"prod_order_id": 10} | 03.11.2026 14:44 | 03.11.2026 14:17 | — |
| 47 | order.confirmed | sales_orders #10 | {"order_id": 10} | 02.11.2026 14:45 | 02.11.2026 14:28 | — |
| 46 | order.received | sales_orders #10 | {"lines": 1, "crm_order_id": 51009} | 01.11.2026 14:54 | 01.11.2026 14:11 | — |
| 45 | material.issued | wh_moves #33 | {"move_id": 33, "prod_order_id": 9} | 02.11.2026 14:49 | 02.11.2026 14:23 | — |
| 44 | prod_order.launched | plan_prod_orders #9 | {"prod_order_id": 9} | 01.11.2026 14:28 | 01.11.2026 15:06 | — |
| 43 | order.confirmed | sales_orders #9 | {"order_id": 9} | 31.10.2026 14:58 | 31.10.2026 14:33 | — |
| 42 | order.received | sales_orders #9 | {"lines": 1, "crm_order_id": 51008} | 30.10.2026 14:58 | 30.10.2026 14:17 | — |
| 41 | material.issued | wh_moves #31 | {"move_id": 31, "prod_order_id": 8} | 31.10.2026 15:06 | 31.10.2026 14:59 | — |
| 40 | prod_order.launched | plan_prod_orders #8 | {"prod_order_id": 8} | 30.10.2026 15:08 | 30.10.2026 14:22 | — |
| 39 | order.confirmed | sales_orders #8 | {"order_id": 8} | 29.10.2026 14:13 | 29.10.2026 14:20 | — |
| 38 | order.received | sales_orders #8 | {"lines": 1, "crm_order_id": 51007} | 28.10.2026 14:34 | 28.10.2026 14:55 | — |
| 37 | material.issued | wh_moves #29 | {"move_id": 29, "prod_order_id": 7} | 30.10.2026 14:45 | 30.10.2026 14:35 | — |
| 36 | prod_order.launched | plan_prod_orders #7 | {"prod_order_id": 7} | 29.10.2026 14:41 | 29.10.2026 14:13 | — |
| 35 | order.confirmed | sales_orders #7 | {"order_id": 7} | 28.10.2026 15:03 | 28.10.2026 14:38 | — |
| 34 | order.received | sales_orders #7 | {"lines": 1, "crm_order_id": 51006} | 27.10.2026 15:03 | 27.10.2026 14:29 | — |
| 33 | material.issued | wh_moves #27 | {"move_id": 27, "prod_order_id": 6} | 27.10.2026 15:03 | 27.10.2026 14:55 | — |
| 32 | prod_order.launched | plan_prod_orders #6 | {"prod_order_id": 6} | 26.10.2026 14:34 | 26.10.2026 14:55 | — |
| 31 | order.confirmed | sales_orders #6 | {"order_id": 6} | 25.10.2026 14:33 | 25.10.2026 15:09 | — |
| 30 | order.received | sales_orders #6 | {"lines": 1, "crm_order_id": 51005} | 24.10.2026 14:15 | 24.10.2026 14:55 | — |
| 29 | item.packed | plan_prod_orders #5 | {"items": 3, "prod_order_id": 5} | 07.11.2026 15:03 | 07.11.2026 15:05 | — |
| 28 | material.issued | wh_moves #24 | {"move_id": 24, "prod_order_id": 5} | 25.10.2026 14:35 | 25.10.2026 14:31 | — |
| 27 | prod_order.launched | plan_prod_orders #5 | {"prod_order_id": 5} | 24.10.2026 15:07 | 24.10.2026 14:11 | — |
| 26 | order.confirmed | sales_orders #5 | {"order_id": 5} | 23.10.2026 15:04 | 23.10.2026 15:05 | — |
| 25 | order.received | sales_orders #5 | {"lines": 1, "crm_order_id": 51004} | 22.10.2026 14:39 | 22.10.2026 14:32 | — |
| 24 | fg.shipped | wh_moves #23 | {"order_id": 4} | 05.11.2026 14:41 | 05.11.2026 14:50 | — |
| 23 | item.packed | plan_prod_orders #4 | {"items": 2, "prod_order_id": 4} | 03.11.2026 15:08 | 03.11.2026 14:35 | — |
| 22 | material.issued | wh_moves #20 | {"move_id": 20, "prod_order_id": 4} | 20.10.2026 14:42 | 20.10.2026 14:18 | — |
| 21 | prod_order.launched | plan_prod_orders #4 | {"prod_order_id": 4} | 19.10.2026 14:52 | 19.10.2026 14:47 | — |
| 20 | order.confirmed | sales_orders #4 | {"order_id": 4} | 18.10.2026 14:56 | 18.10.2026 14:20 | — |
| 19 | order.received | sales_orders #4 | {"lines": 1, "crm_order_id": 51003} | 17.10.2026 14:28 | 17.10.2026 14:11 | — |
| 18 | fg.shipped | wh_moves #19 | {"order_id": 3} | 03.11.2026 14:42 | 03.11.2026 14:33 | — |
| 17 | item.packed | plan_prod_orders #3 | {"items": 6, "prod_order_id": 3} | 01.11.2026 15:00 | 01.11.2026 14:39 | — |
| 16 | material.issued | wh_moves #16 | {"move_id": 16, "prod_order_id": 3} | 19.10.2026 15:08 | 19.10.2026 14:42 | — |
| 15 | prod_order.launched | plan_prod_orders #3 | {"prod_order_id": 3} | 18.10.2026 14:37 | 18.10.2026 15:10 | — |
| 14 | order.confirmed | sales_orders #3 | {"order_id": 3} | 17.10.2026 14:23 | 17.10.2026 14:40 | — |
| 13 | order.received | sales_orders #3 | {"lines": 1, "crm_order_id": 51002} | 16.10.2026 14:29 | 16.10.2026 14:18 | — |
| 12 | fg.shipped | wh_moves #15 | {"order_id": 2} | 01.11.2026 14:34 | 01.11.2026 14:58 | — |
| 11 | item.packed | plan_prod_orders #2 | {"items": 4, "prod_order_id": 2} | 30.10.2026 14:12 | 30.10.2026 14:13 | — |
| 10 | material.issued | wh_moves #12 | {"move_id": 12, "prod_order_id": 2} | 17.10.2026 15:02 | 17.10.2026 14:25 | — |
| 9 | prod_order.launched | plan_prod_orders #2 | {"prod_order_id": 2} | 16.10.2026 14:35 | 16.10.2026 15:09 | — |
| 8 | order.confirmed | sales_orders #2 | {"order_id": 2} | 15.10.2026 15:00 | 15.10.2026 14:17 | — |
| 7 | order.received | sales_orders #2 | {"lines": 1, "crm_order_id": 51001} | 14.10.2026 14:56 | 14.10.2026 14:32 | — |
| 6 | fg.shipped | wh_moves #11 | {"order_id": 1} | 28.10.2026 14:36 | 28.10.2026 14:29 | — |
| 5 | item.packed | plan_prod_orders #1 | {"items": 2, "prod_order_id": 1} | 26.10.2026 14:20 | 26.10.2026 14:44 | — |
| 4 | material.issued | wh_moves #8 | {"move_id": 8, "prod_order_id": 1} | 15.10.2026 14:25 | 15.10.2026 14:59 | — |
| 3 | prod_order.launched | plan_prod_orders #1 | {"prod_order_id": 1} | 14.10.2026 14:43 | 14.10.2026 14:14 | — |
| 2 | order.confirmed | sales_orders #1 | {"order_id": 1} | 13.10.2026 14:45 | 13.10.2026 14:23 | — |
| 1 | order.received | sales_orders #1 | {"lines": 1, "crm_order_id": 51000} | 12.10.2026 14:44 | 12.10.2026 14:38 | — |