Tools5% of the exam

Choosing Bolt or the Slack SDKs

What the Bolt frameworks for Java, JavaScript and Python give an app out of the box, when a plain Slack SDK client such as the Python WebClient is the lighter choice, and why every Bolt listener acknowledges before doing slow work.

Official exam objective
Recommend when to use the Bolt development framework to build Slack apps.

~7 min read · 4 practice questions ·

What the exam expects

  • List what Bolt provides out of the box (web server, OAuth installation handling, simplified API interfaces, token validation, retry and rate-limit logic) and what it does not (hosting, Marketplace shortcuts, rate-limit exemptions).
  • Recommend Bolt for Java, JavaScript or Python so a team can stay in its own language.
  • Recommend a plain SDK client, such as the Python Slack SDK's WebClient, for a job that only calls Web API methods and never receives requests from Slack.
  • Fix a Bolt listener that misses the 3-second window by calling ack() first.

Key terms: Bolt (Slack's "batteries-included" app framework); SDK (in-language wrappers for Slack APIs without the framework); listener (a Bolt method such as app.command() that receives one request type); ack() (the acknowledgement Bolt sends back to Slack); Deno Slack SDK (for Slack-hosted workflow apps in TypeScript).

Key facts

Bolt out of the box
Detail
Web server, OAuth installation handling, simplified API interfaces, automatic token validation, retry and rate-limiting logic
Bolt languages
Detail
Java, JavaScript and Python
Slack SDKs
Detail
Deno, Java, Node and Python
Python Web API package
Detail
slack_sdk.web: "over 200 methods"
Bolt for Java
Detail
Runs in any JVM language; listeners include app.command, app.blockAction, app.viewSubmission, app.function
What must be acked
Detail
Actions, commands and options requests
Ack window
Detail
3 seconds; call ack() right away
Responding to a command
Detail
say() or respond() (a response_url utility)
Slack-hosted option
Detail
Deno Slack SDK workflows in TypeScript; not eligible for Marketplace listing
Sources for this section (8)
  • Which four things does Bolt give an app out of the box?
  • When is the Python Slack SDK's `WebClient` a better choice than a Bolt app?
  • Why should `ack()` be the first statement in a slow command listener?
  • Why doesn't a Java team need a separate Node.js service to use Bolt?

The questions are free to read. Answers with their sources and self-grading are included with the pack.

Keep reading with the Slack Developer pack

  • Core concepts
  • Exam traps
  • Worked scenario

The pack includes:

  • All 38 lessons of the Slack Developer guide, with reading progress
  • Interactive decision walks and step-by-step sequence steppers
  • Inline practice questions and one-click topic practice (4 questions for this lesson)
  • An official source cited for every claim
  • An AI tutor that answers from the guide
  • Unlimited timed practice exams

Practice for the Slack Developer exam