videoPlatform, DevOps & Performancecommunity - not Microsoftreviewed - checked by Opus

20260223 - If You Can’t Make It Fast, Make It Feel Fast

Background processing options in Business Central (page background tasks, start session, task scheduler, job queue) and how to use them so users do not wait. Covers capabilities, limits, error handling, a production order and warehouse request case, and load balancing across NST nodes online.

  1. 0:00 Introduction and Housekeeping
  2. 2:15 Presenters Henrik and Stefan Introductions
  3. 5:39 Session Objectives and Agenda
  4. 7:52 Baggage Claim Example - Perception Over Reality
  5. 9:21 User Experience vs Performance Philosophy
  6. 11:00 Real World Medical Device Manufacturing Case Study
  7. 14:54 Production order processing optimization strategy
  8. 16:27 Background processing design principles and results
  9. 19:16 Background and parallel processing toolkit overview
  10. 22:49 Page background task capabilities and design
  11. 24:21 Page background task demo and comparison
  12. 27:08 Start Session Capabilities and Demo
  13. 30:00 Task Scheduler Overview and Methods
  14. 31:39 Task Scheduler Demo with Error Handling
  15. 34:35 Task Scheduler Usage in Base App
  16. 36:19 Job Queue Overview and Architecture
  17. 38:35 Job Queue Best Practices and Configuration
  18. 41:52 Practical Job Queue Examples with Error Handling
  19. 44:02 Multi-Level Job Queue Workflows and Session Distribution
  20. 47:01 Load Balancing and Horizontal Scaling
  21. 49:45 Q&A on Session Limits and Job Queue Best Practices
  22. 53:47 Closing Remarks and Next Steps
video Areopa webinars · 2026-02-24Watch on YouTube

Overview

The session argues for user experience over raw performance: if a process cannot be made fast, move work out of the UI thread so the user does not wait. It opens with a baggage claim example and a medical device manufacturing case where production planning on every order release caused two-minute waits. Moving that planning into a job queue entry, and using a warehouse request instead of creating picks immediately, improved perceived speed.

The presenters then compare four tools in order of capability: page background tasks, start session, task scheduler and job queue. Demos cover parallel execution, the task scheduler failure handler, job queue categories, record ID and parameter string, multi-level job queue chains, and load balancing across NST nodes. The Q&A covers session limits and use of page background tasks for API calls. Code examples are on Stefan’s GitHub.

Key points

  • Page background tasks load field values and page calculations after the page opens. They are read-only, session-specific, cancelled if the record changes or the page closes, not suitable for list pages, and do not survive server restarts.
  • Start session runs a codeunit in another session with read and write access. It has no scheduling, no error logging and no error handling, and it is cancelled if the server crashes.
  • Task scheduler is built on start session. It adds one-time scheduling, a failure codeunit that receives error text and call stack, and persistence across server restarts. It is backed by a scheduled tasks table and has no logging out of the box.
  • Job queue adds recurring scheduling, automatic logging and a UI. Recurring entries can fail silently, so error handling matters. Categories keep heavy processes from blocking other entries.
  • Job queue entries can carry a record ID and a parameter string (described as a hack that works), and can trigger other entries, for example invoice creation, then posting, then payment.
  • Stated limit in the cloud: 5 background sessions running per user and up to 100 queued per user. The speaker says this is the latest information and recommends checking the documentation.
  • Auto-scaling across NSTs applies to task scheduler and job queue only. Page background tasks and start session run on the same NST as the page. Page background tasks for API calls are fine for reads but risky for writes.

Features

Feature Status At
Page Background Tasks status not stated, demoed 22:49
Start Session status not stated, demoed 20:28
Task Scheduler status not stated, demoed 21:12
Job Queue status not stated 22:15
Job Queue Categories status not stated, demoed 40:01
Job Queue Record ID and Parameter String status not stated, demoed 41:41
Job Queue Error Handling status not stated, demoed 42:04
Task Scheduler Failure Handler status not stated, demoed 31:39
Multi-Level Job Queue Workflows status not stated, demoed 44:02
Warehouse Request Architecture status not stated, demoed 14:02
Production order asynchronous planning status not stated 15:17
Business Central Online Compute Node Distribution status not stated 45:24
Automatic NST Scaling status not stated 46:11
Session Limit - Start Session status not stated 50:52
Auto-Scaling Limited to Task Scheduler and Job Queue status not stated 52:13
Page Background Tasks for API Calls status not stated 54:06

AL objects mentioned

As heard in the captions. A name that matches one object page by exact type and name links to it; the others stay as named.

  • other “warehouse request” at 14:15
  • other “warehouse activity” at 14:34
  • other “pick ticket” at 14:54
  • table “production order planning request” at 15:29
  • table “schedule tasks” at 30:24
  • table “job q lock entry table” at 35:31
  • codeunit “change global dimension functionality” at 35:13
  • codeunit “find customers to process” at 39:39
  • table “job Q entry” at 40:01

Not found in BC28-30: table “production order planning request”, table “schedule tasks”, table “job q lock entry table”, codeunit “change global dimension functionality”, codeunit “find customers to process”, table “job Q entry”.

Quotes

  • 3:00 “the phrase perception is reality is it’s about how do does a person perceives something that is happening”
  • 9:06 “They just made it feel shorter basically because they the passengers were busy walking”
  • 9:21 “user experience over performance. And and that’s basically the name of the game here”
  • 9:40 “A lot of people will spend hours and days trying to optimize a process. maybe gain 2 seconds if the process is 2 minutes”
  • 11:25 “we did production planning on every order. And we did that on release. Uh, and we ended up with, you know, two minute weights,”

Disclaimers in the video

  • 7:32 other: this session is not meant to be a detailed deep dive technical and deep dive onto any of these these different tools
  • 50:52 subject-to-change: most recent information is that we have five background sessions actively running per user and we can cue up to …

Presenters (as heard): Henrik Halverson, Stefan Moran, Andrew, Arthur, Bquake.