Sobes.tech
Middle

Zamislite rešenje za integraciju: sistem A treba da zatraži od sistema B generisanje izveštaja (koji traje 2 sata i teži 200 MB) i da dobije rezultat.

sobes.tech АИ

Одговор од АИ

За решење за интеграцију у којем систем А тражи од система Б да генерише велики извештај (2 часа формирања, 200 МБ), боље је користити асинхрони приступ са обавештењем о спремности:

  1. Систем А шаље захтев за генерисање извештаја систему Б и добија јединствени идентификатор задатка.
  2. Систем Б покреће процес генерисања извештаја у позадини.
  3. Систем А периодично пита систем Б за статус помоћу идентификатора задатка (нпр. преко REST API).
  4. Када је извештај спреман, систем Б пружа линк за преузимање (нпр. преко HTTP или S3 складишта).
  5. Систем А преузима извештај преко тог линка.

Овај приступ омогућава да се не одржава веза отворена 2 часа и ефикасно преносе велики фајлови. За пренос извештаја, боље је користити складиште датотека или објектно складиште (S3, Azure Blob итд.), а не директно преко API.

Пример API:

  • POST /reports - креира задатак, враћа taskId
  • GET /reports/{taskId}/status - статус задатка
  • GET /reports/{taskId}/download - линк за преузимање

Ово је класичан образац "задатак-ред-обавештење" са асинхроним обрадом.