
Data Parallelism in Rust With Rayon and Parallel Iterators
Swap iter for par_iter and Rayon splits the work across a thread pool. See the speedup conditions, the traits it needs and when it makes things slower.
Threads, channels, locks, atomics and Tokio, with a bias towards the bug you will hit at 3am.

Swap iter for par_iter and Rayon splits the work across a thread pool. See the speedup conditions, the traits it needs and when it makes things slower.

Pick a background job system for a Rust service: an in-process Tokio channel, a database table with SKIP LOCKED, Redis queues, or a broker. Compare durability, retries, scale and operational cost.

Build and deploy a Rust function to AWS Lambda with cargo-lambda: project template, lambda_runtime handler, ARM builds, deploy, invoke locally, cold starts and limits.

Arc gives several threads shared ownership and Mutex gives them one-at-a-time access. See the full pattern, the deadlock to avoid and what poisoning means.

Send means a value can move to another thread and Sync means a reference to it can be shared. See which types lack them and why the compiler decides for you.

std::sync::mpsc moves values between threads through a channel. Learn send, recv, iterating, multiple producers and what a closed channel means.

A Rust program that hangs is often a deadlock. Capture every thread's stack with gdb, parking_lot deadlock detection or tokio-console, and read who waits for what.

Start OS threads with std::thread::spawn, move data in with move closures, collect results with join and borrow safely with scoped threads.

Handle SIGTERM and Ctrl C so Axum finishes in-flight requests before exiting. Includes the signal future, the drain timeout and the Kubernetes and systemd details.

Tokio spawn needs a Send future. When the compiler says the future cannot be sent between threads safely, it points at the value held across an await.

Use PostgreSQL LISTEN and NOTIFY from Rust with SQLx PgListener: send notifications from SQL or triggers, receive them in a task, handle reconnects and know the limits.

A MutexGuard held across an await can make a task non-Send or deadlock a worker. See the compiler error, the deadlock it allows and three fixes.
We send one email when a new post is published. No spam.