Back to Dictionary

Threw

/θruː/ · verb (past tense) · THROO

Transcript: “Threw” vocabulary micro-course

Read along with the three podcasts, or open the full dictionary entry for Threw for the definition, Arabic meaning, synonyms and example sentences.

Podcast 1 — Introduction & meaning

Welcome. Today's word is threw — the past tense of throw, pronounced THROO, a single syllable, written in phonetics as θ, r, uː.

Threw is the simple past tense of the verb to throw — meaning to propel something through the air with force. She threw the ball; he threw the papers across the room; they threw caution to the wind. The action is complete, finished, and in the past — the throwing has already happened.

The word comes from Old English þrāwan, meaning to twist or turn — a surprising etymology for a verb we associate with forward propulsion. The original sense was rotational movement, like turning a lathe or wringing. Over time the sense shifted to the act of propelling something through a twisting arm motion — the physical action of throwing, which does involve a rotational motion of the arm. The irregular past tense threw developed from the Old English þrēow, following a well-established pattern of strong verb conjugation in the Germanic languages.

The irregular past tense of throw — threw rather than the regular throwed — is one of the features that marks English as a descendant of Germanic languages, which had an elaborate system of strong verbs that changed their internal vowel rather than adding an -ed suffix to form the past tense. Other examples of this pattern include: drive, drove; grow, grew; know, knew; fly, flew. Threw fits naturally into this pattern — throw, threw, thrown.

Threw appears in a wide range of figurative expressions. To throw light on something is to illuminate or clarify it — and threw light on the matter means the illumination happened in the past. She threw herself into her work means she applied herself intensely. He threw a party means he organised one. He threw the match means he lost deliberately.

The distinction between threw and through is one of the most common homophones in English — both pronounced THROO — and their confusion in writing is extremely common.

In register, threw is entirely neutral — the standard past tense of throw in all its literal and figurative uses.

Remember it like this: threw is throw completed — the past moment when something left the hand and travelled through the air.

And that is our word — threw: the moment the throwing happened.

Read podcasts 2 and 3

Podcast 2 — In conversation

Speaker A: The throw-threw-thrown paradigm is one of the cleanest examples of the strong verb system that English inherited from its Germanic ancestors. In Old English, verbs were divided into weak verbs — which formed the past tense by adding a -d or -t suffix, the ancestors of modern regular verbs — and strong verbs, which changed their internal vowel, called ablaut, to form the past tense. Modern English has retained a significant number of strong verbs, and they are typically the most common, most frequently used verbs in the language: be, have, go, do, see, come, take, give, throw. Frequency of use has protected these irregular forms from the regularisation that has gradually absorbed less common verbs.

Speaker B: The threw versus through confusion in writing is genuinely one of the most common spelling errors in English, and it is understandable — both words are pronounced identically in standard British and American accents: THROO. They are homophones but not homographs. Threw is always a verb — the past tense of throw — while through is a preposition or adverb indicating passage from one side to the other. She threw the ball through the window contains both words in a sentence that will catch out a spell checker because both spellings are correct words — only the context reveals which is which.

Speaker A: Threw versus hurled — what is the distinction?

Speaker B: Both are past tenses of verbs meaning to propel through the air, but with different intensities and registers. Threw is neutral and covers the full range from a gentle underarm toss to a powerful throw. Hurled implies significantly more force and sometimes more emotional intensity — you hurl an accusation, you hurl a stone in anger. Hurled is the more dramatic and forceful word, often implying that the throwing was done with vigour or passion. Tossed implies a casual, light throw — she tossed him the keys. Flung suggests an impulsive or angry throw — he flung the report across the desk. Threw is the most neutral and general; hurled, tossed, and flung are all more coloured in their implications.

Speaker A: What is a common mistake about threw in figurative uses?

Speaker B: Confusing threw with the noun throw or the preposition through in figurative expressions. Expressions like threw a spanner in the works — meaning deliberately caused a problem — or threw cold water on the idea — meaning discouraged it — use threw as a verb, not throw or through. Writing throwed instead of threw is the regularisation error that marks the writer as a non-native or early-stage English learner — throwed is not standard English, though it appears in some regional dialects. The standard paradigm is throw in the present, threw in the past, and thrown as the past participle.

Speaker A: Any close synonyms?

Speaker B: Hurled, flung, tossed, launched, pitched, and lobbed are all past tenses of verbs meaning to propel through the air. Pitched and lobbed are specific to sports contexts — pitched suggests a more aimed, controlled throw, as in baseball pitching; lobbed suggests a high, arcing throw. Launched implies more force or a more significant trajectory — a missile is launched, not tossed. Cast is a literary or specialised synonym — casting a fishing line, casting light. Each of these synonyms carries a specific register, force level, or context that threw does not — threw remains the most general and contextually flexible past tense for the act of propelling something through the air.

Podcast 3 — Prompt engineering

Speaker B: Welcome to the workshop. Today we prompt AI using the word threw — building the event dispatch systems, data pipeline routers, task launchers, request forwarders, and webhook emitters that throw data, tasks, and events from one place to another with precision and trackability.

Speaker A: So threw tells the AI to build the dispatch and forwarding systems — the event systems that threw events to subscribers, the pipeline stages that throw transformed data to the next step, and the job launchers that throw background tasks to a worker queue for async processing?

Speaker B: Exactly. It signals event dispatch, data forwarding, and async task launching. Let me start with an event dispatch system.

Build an event dispatch and subscriber system: allow services to throw events to named channels. Allow other services to subscribe to specific channels and receive events. Support event filtering — subscribers can declare that they only want events matching specific criteria, such as a specific event type or a field value. Guarantee delivery — if a subscriber is offline when an event is thrown, the event is queued and delivered when the subscriber reconnects. Track the delivery status of every thrown event per subscriber. Alert when an event has not been delivered to a subscriber within a configurable timeout.

Speaker B: Event dispatch system supports named channel publishing, subscriber filtering by event type and field values, guaranteed delivery with offline queueing, per-subscriber delivery status tracking, and configurable delivery timeout alerts — the AI builds the channel manager, the subscriber registry, the filter engine, the offline queue, the delivery tracker, and the timeout alert.

Speaker A: Guaranteed delivery with offline queueing — persisting events thrown while a subscriber is offline and delivering them when the subscriber reconnects — is the reliability mechanism that decouples publisher and subscriber availability: a publisher that can throw events without knowing or caring whether the subscriber is currently running, and a subscriber that can receive all events on reconnection without missing any thrown during downtime, creates a resilient integration pattern.

Speaker B: Offline queue guaranteed delivery as the publisher-subscriber availability decoupling reliability mechanism. Now the event schema.

Design an event dispatch and delivery tracking schema: an events table recording each thrown event with an ID, channel name, event type, payload as JSON, thrown by service ID, thrown timestamp, and expiry timestamp after which undelivered events are discarded. A subscribers table recording each channel subscriber with an ID, service name, channel name, filter criteria as JSON, the last seen timestamp, and connection status. A delivery_records table recording each delivery attempt with the event ID, subscriber ID, attempt number, attempted timestamp, delivery status as delivered, failed, or pending, and any error message. A delivery_health_view showing per-channel the throw rate in the past hour, delivery success rate, and average delivery latency.

Speaker B: Event dispatch schema stores events with expiry, subscribers with filter criteria and connection status, delivery attempts with attempt count and error tracking, and a channel health view with throw rate, delivery success rate, and average latency — the AI builds the four-table schema.

Speaker A: The event expiry timestamp — discarding undelivered events after a configured period — is the storage management mechanism that prevents unbounded growth when a subscriber remains offline for a long time: an event system without expiry that accumulates events for an offline subscriber indefinitely will eventually exhaust storage; the expiry ensures that stale events are cleared and the offline subscriber is notified that it has missed events beyond the retention window.

Speaker B: Event expiry as the unbounded-offline-queue-growth prevention and storage management mechanism. Next, the dispatch monitoring interface.

Design a real-time event dispatch monitoring interface for a platform engineering team: show a live feed of events being thrown across all channels with the event type, channel, throwing service, and timestamp. Display a channel health panel showing each channel's events-per-minute rate, delivery success rate, and subscriber count. Allow filtering the live feed by channel, event type, or service. Allow clicking any event in the feed to inspect its full payload and per-subscriber delivery status. Highlight events that have exceeded their delivery timeout in red.

Speaker B: Event dispatch monitor shows a live feed with event type-channel-service-timestamp, a channel health panel with rate-success-subscribers, live feed filters, click-to-inspect payload and per-subscriber delivery status, and red highlighting for timed-out events — the AI builds the live feed, the health panel, the filters, the event inspector, and the timeout highlighter.

Speaker A: The click-to-inspect delivery status showing each subscriber's receipt status for a specific event — delivered to subscriber A at this timestamp, pending for subscriber B, failed for subscriber C — is the per-event delivery forensics tool: when a downstream system fails to process an event, the operator needs to know whether the failure was in the throwing, the delivery, or the subscriber's processing; the per-subscriber status answers the delivery portion of that question.

Speaker B: Per-subscriber per-event delivery status as the delivery-layer failure forensics tool. On to task launching.

Create an async background task launcher: throw tasks to a worker queue and track their execution. Support task priorities — tasks thrown with high priority are processed before normal and low priority tasks. Allow throwing tasks with a scheduled delay — throw it now but process it in ten minutes. Support task deduplication — if the same task is thrown multiple times within a configurable window, process it only once. Track the full lifecycle of each task — queued, running, completed, failed, and deduplicated. Alert on tasks that remain in the running state beyond their expected maximum duration.

Speaker B: Async task launcher supports priority queuing, delayed execution, deduplication within a configurable window, full lifecycle state tracking, and alerts on tasks exceeding maximum running duration — the AI builds the priority queue, the delay scheduler, the deduplication engine, the lifecycle tracker, and the duration alert.

Speaker A: Task deduplication — processing a task only once when the same task is thrown multiple times within a window — is the idempotency protection for high-volume systems: a user action that throws a processing task, combined with retries on network failure, may throw the same task three or four times; without deduplication, the task processes three or four times, potentially with side effects like duplicate emails or double-charged payments.

Speaker B: Task deduplication as the retry-triggered double-processing and side-effect prevention mechanism. Now something whole.

Build a data pipeline orchestration platform: define multi-stage data pipelines where each stage throws its output to the next. Support branching pipelines — a stage can throw its output to multiple downstream stages simultaneously. Track data as it flows through each pipeline stage with lineage metadata. Visualise the pipeline as a directed graph. Alert on stage failures and provide detailed error context for debugging. Support rerunning failed pipelines from the failed stage rather than from the beginning.

Speaker B: Data pipeline platform supports multi-stage sequential and branching pipelines, throws data between stages with lineage tracking, visualises as a directed graph, alerts on stage failures with error context, and supports rerunning from the failed stage — the AI builds the pipeline orchestrator, the branching router, the lineage tracker, the graph visualiser, the failure alert, and the partial rerun engine.

Speaker A: Rerunning failed pipelines from the failed stage rather than from the beginning — resuming from where the failure occurred rather than replaying all previous stages — is the efficiency mechanism that makes pipeline recovery practical for long-running pipelines: a pipeline that took six hours and failed in its eighth stage should not require re-executing the first seven stages to recover; the stage-resume capability recovers from the failure point directly.

Speaker B: Stage-resume pipeline recovery as the full-pipeline-replay-avoidance efficiency mechanism. Last one — webhook forwarder.

Write a webhook ingestion and forwarding system: receive incoming webhooks from external services and forward them to internal services based on configurable routing rules. Buffer incoming webhooks if the target internal service is temporarily unavailable. Support transforming the webhook payload before forwarding — renaming fields, filtering sensitive data, or restructuring the JSON. Track each received webhook and its forwarding status. Retry failed forwards with exponential backoff. Alert when a webhook has failed forwarding beyond the maximum retry count.

Speaker B: Webhook forwarder ingests external webhooks, routes to internal services by configurable rules, buffers during target unavailability, transforms payloads before forwarding, tracks receipt and forwarding status, retries failures with exponential backoff, and alerts on max-retry failures — the AI builds the ingester, the router, the buffer, the transformer, the status tracker, the retry engine, and the failure alert.

Speaker A: Payload transformation before forwarding — renaming fields, filtering sensitive data, or restructuring the JSON — is the data format and security adapter that allows internal services to consume external webhooks without requiring each internal service to handle the external format directly: a payment provider's webhook payload contains fields internal services do not need and may contain PII that should be stripped; the transformer adapts the payload at the ingestion boundary.

Speaker B: That is the goal — one launched word, better-managed dispatch and event systems. Keep it in your kit.