# Scheduler

Published articles for Scheduler.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Kubernetes Architecture: Control Plane, Scheduler, and Kubelet

DevFeed: [Kubernetes Architecture: Control Plane, Scheduler, and Kubelet](<https://devfeed.tech/articles/what-is-kubernetes-39552.md>)

Original publisher: [Read original article](<https://kodekloud.com/blog/kubernetes-basics-architecture-pods-services/>)

Author: Nimesha Jinarajadasa

Published: 2026-09-17T06:25:02Z

Content type: tutorial

Language: en

Sources: [Kubernetes - KodeKloud Blog | DevOps, Cloud, Kubernetes, AI Tutorials & More](<https://devfeed.tech/sources/kubernetes-kodekloud-blog-devops-cloud-kubernetes-ai-tutorials-more.md>)

Topics: [Kubernetes](<https://devfeed.tech/topics/kubernetes.md>), [control-plane](<https://devfeed.tech/topics/control-plane.md>), [api server](<https://devfeed.tech/topics/api-server.md>), [Containers](<https://devfeed.tech/topics/containers.md>), [etcd](<https://devfeed.tech/topics/etcd.md>), [kubectl](<https://devfeed.tech/topics/kubectl.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [api-server](<https://devfeed.tech/tags/api-server.md>), [containers](<https://devfeed.tech/tags/containers.md>), [control-plane](<https://devfeed.tech/tags/control-plane.md>), [controllers](<https://devfeed.tech/tags/controllers.md>), [etcd](<https://devfeed.tech/tags/etcd.md>), [kubectl](<https://devfeed.tech/tags/kubectl.md>), [kubernetes](<https://devfeed.tech/tags/kubernetes.md>), [kubernetes-architecture](<https://devfeed.tech/tags/kubernetes-architecture.md>), [kubernetes-networking](<https://devfeed.tech/tags/kubernetes-networking.md>), [node](<https://devfeed.tech/tags/node.md>), [scheduler](<https://devfeed.tech/tags/scheduler.md>)

### AI overview

A beginner-friendly tutorial explaining how Kubernetes maintains the desired state of containerized applications. It covers the control plane, API server, etcd, controllers, scheduler, and kubelet.

### Source excerpt

Learn how Kubernetes works, from the control plane and scheduler to kubelet, pods, and Services, with simple answers to interview questions.

## Linux Randomly Picking Idle CPU Cores Shows Modest Win On High Core Count Systems

DevFeed: [Linux Randomly Picking Idle CPU Cores Shows Modest Win On High Core Count Systems](<https://devfeed.tech/articles/linux-randomly-picking-idle-cpu-cores-shows-modest-win-on-high-core-count-systems-31409.md>)

Original publisher: [Read original article](<https://www.phoronix.com/news/Linux-Random-Equal-Idle-CPUs>)

Author: Michael Larabel

Published: 2026-09-16T13:30:04Z

Content type: news

Language: en

Sources: [Phoronix](<https://devfeed.tech/sources/phoronix.md>)

Topics: [Linux](<https://devfeed.tech/topics/linux.md>), [Linux Kernel](<https://devfeed.tech/topics/linux-kernel.md>), [cpu](<https://devfeed.tech/topics/cpu.md>), [benchmarking](<https://devfeed.tech/topics/benchmarking.md>), [systems](<https://devfeed.tech/topics/systems.md>)

Tags: [benchmarking](<https://devfeed.tech/tags/benchmarking.md>), [cpu](<https://devfeed.tech/tags/cpu.md>), [desktop-linux](<https://devfeed.tech/tags/desktop-linux.md>), [linux](<https://devfeed.tech/tags/linux.md>), [linux-benchmarking](<https://devfeed.tech/tags/linux-benchmarking.md>), [linux-hardware-benchmarks](<https://devfeed.tech/tags/linux-hardware-benchmarks.md>), [linux-hardware-reviews](<https://devfeed.tech/tags/linux-hardware-reviews.md>), [linux-how-to](<https://devfeed.tech/tags/linux-how-to.md>), [linux-kernel](<https://devfeed.tech/tags/linux-kernel.md>), [linux-performance](<https://devfeed.tech/tags/linux-performance.md>), [linux-server-benchmarks](<https://devfeed.tech/tags/linux-server-benchmarks.md>), [open-source-graphics](<https://devfeed.tech/tags/open-source-graphics.md>), [patches](<https://devfeed.tech/tags/patches.md>), [phoronix](<https://devfeed.tech/tags/phoronix.md>), [phoronix-test-suite](<https://devfeed.tech/tags/phoronix-test-suite.md>), [scheduler](<https://devfeed.tech/tags/scheduler.md>), [ubuntu-benchmarks](<https://devfeed.tech/tags/ubuntu-benchmarks.md>), [ubuntu-hardware](<https://devfeed.tech/tags/ubuntu-hardware.md>)

### AI overview

A Linux kernel patch series proposes randomizing the selection among equally shallow idle CPU cores to reduce scan-order bias and prevent concurrent tasks from converging on the same core. Testing on a 160-core Ampere Altra system showed throughput improvements of up to a few percent in Stress-NG benchmarking, while the benefits on smaller systems remain uncertain.

### Source excerpt

Arm engineer Christian Loehle sent out a patch series today proposing that the Linux scheduler code randomize its picking of equally shallow idle CPU cores. This randomization is showing to deliver a win at least for high CPU core counts for better distributing workloads...

## Monitor TAS and gang scheduling for AI training in Kubernetes

DevFeed: [Monitor TAS and gang scheduling for AI training in Kubernetes](<https://devfeed.tech/articles/monitor-tas-and-gang-scheduling-for-ai-training-in-kubernetes-26969.md>)

Original publisher: [Read original article](<https://www.datadoghq.com/blog/monitor-tas-and-gang-scheduling-for-ai-training-in-kubernetes/>)

Author: David Lentz; Kathy Lin

Published: 2026-09-15T00:00:00Z

Content type: article

Language: en

Sources: [Datadog | The Monitor blog](<https://devfeed.tech/sources/datadog-the-monitor-blog.md>)

Topics: [Kubernetes](<https://devfeed.tech/topics/kubernetes.md>), [kueue](<https://devfeed.tech/topics/kueue.md>), [distributed-training](<https://devfeed.tech/topics/distributed-training.md>), [GPU](<https://devfeed.tech/topics/gpu.md>), [Monitoring](<https://devfeed.tech/topics/monitoring.md>), [datadog](<https://devfeed.tech/topics/datadog.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [batch](<https://devfeed.tech/tags/batch.md>), [containers](<https://devfeed.tech/tags/containers.md>), [datadog](<https://devfeed.tech/tags/datadog.md>), [distributed-training](<https://devfeed.tech/tags/distributed-training.md>), [gpu](<https://devfeed.tech/tags/gpu.md>), [gpu-monitoring](<https://devfeed.tech/tags/gpu-monitoring.md>), [kubernetes](<https://devfeed.tech/tags/kubernetes.md>), [kueue](<https://devfeed.tech/tags/kueue.md>), [monitoring](<https://devfeed.tech/tags/monitoring.md>), [scheduler](<https://devfeed.tech/tags/scheduler.md>)

### AI overview

This article explains why Kubernetes scheduling is insufficient for distributed AI training workloads and how topology-aware scheduling and gang scheduling address hardware placement and simultaneous startup requirements. It discusses implementing these capabilities with Kueue and the Coscheduling plugin, and monitoring and troubleshooting them with Datadog GPU Monitoring.

### Source excerpt

Learn how Datadog helps you correlate Kueue, Coscheduling, GPU, and training framework signals to validate gang scheduling and topology-aware scheduling.

## A Backward NTP Clock Step Delayed a Python Scheduler's Measurements by Nine Days

DevFeed: [A Backward NTP Clock Step Delayed a Python Scheduler's Measurements by Nine Days](<https://devfeed.tech/articles/the-ntp-clock-jump-that-made-the-scheduler-skip-a-week-of-measurements-34099.md>)

Original publisher: [Read original article](<https://philipptheserver.com/posts/clock-jump-scheduler/>)

Author: Philipp Lehmann (philipp.lehmann@gruppe.ai)

Published: 2026-09-14T07:00:00Z

Content type: tutorial

Language: en

Sources: [Philipp Lehmann](<https://devfeed.tech/sources/philipp-lehmann.md>)

Topics: [Python](<https://devfeed.tech/topics/python.md>), [Linux](<https://devfeed.tech/topics/linux.md>), [systemd](<https://devfeed.tech/topics/systemd.md>), [Single Board Computer](<https://devfeed.tech/topics/single-board-computer.md>)

Tags: [embedded](<https://devfeed.tech/tags/embedded.md>), [linux](<https://devfeed.tech/tags/linux.md>), [ntp](<https://devfeed.tech/tags/ntp.md>), [python](<https://devfeed.tech/tags/python.md>), [reliability](<https://devfeed.tech/tags/reliability.md>), [scheduler](<https://devfeed.tech/tags/scheduler.md>), [single-board-computer](<https://devfeed.tech/tags/single-board-computer.md>), [systemd](<https://devfeed.tech/tags/systemd.md>), [time](<https://devfeed.tech/tags/time.md>), [wall-clock-time](<https://devfeed.tech/tags/wall-clock-time.md>)

### AI overview

A Python scheduler on an embedded Linux device silently stopped running after NTP corrected the system clock backward by about nine days. Because it used wall-clock time to measure elapsed time, the scheduler waited roughly nine days before running again. The article explains why a monotonic clock is the appropriate fix and mentions testing with an injected clock jump.

### Source excerpt

time.time() vs time.monotonic() in a Python scheduler: a backwards NTP step delayed runs by nine days. Monotonic durations and a jump-injecting test.

## DB-Scheduler: A Persistent, Cluster-Friendly Scheduler for Java

DevFeed: [DB-Scheduler: A Persistent, Cluster-Friendly Scheduler for Java](<https://devfeed.tech/articles/db-scheduler-a-persistent-cluster-friendly-scheduler-for-java-4492.md>)

Original publisher: [Read original article](<https://www.baeldung.com/java-db-scheduler>)

Author: Graham Cox

Published: 2026-08-22T23:11:36Z

Content type: tutorial

Language: en

Sources: [Baeldung](<https://devfeed.tech/sources/baeldung.md>)

Topics: [Java](<https://devfeed.tech/topics/java.md>), [Quartz](<https://devfeed.tech/topics/quartz.md>)

Tags: [how-to](<https://devfeed.tech/tags/how-to.md>), [java](<https://devfeed.tech/tags/java.md>), [persistence](<https://devfeed.tech/tags/persistence.md>), [persistence-popular-quartz](<https://devfeed.tech/tags/persistence-popular-quartz.md>), [popular](<https://devfeed.tech/tags/popular.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [quartz](<https://devfeed.tech/tags/quartz.md>), [scheduler](<https://devfeed.tech/tags/scheduler.md>), [tutorial](<https://devfeed.tech/tags/tutorial.md>)

### AI overview

This tutorial explains how to use the db-scheduler library for persistent, cluster-aware task scheduling in Java. It covers one-time and recurring tasks, project dependencies, the required database table, PostgreSQL schema setup, and Scheduler configuration.

### Source excerpt

Learn how to use the db-scheduler library to store, manage and execute persistent scheduled tasks in Java. The post DB-Scheduler: A Persistent, Cluster-Friendly Scheduler for Java first appeared on Baeldung.

## How dbt works, and why orchestrators shouldn't split it into tasks

DevFeed: [How dbt works, and why orchestrators shouldn't split it into tasks](<https://devfeed.tech/articles/how-dbt-works-and-why-orchestrators-shouldn-t-split-it-into-tasks-30714.md>)

Original publisher: [Read original article](<https://www.windmill.dev/blog/how-dbt-works-and-its-orchestrators>)

Author: Ruben Fiszel

Published: 2026-08-20T00:00:00Z

Content type: article

Language: en

Sources: [Windmill Blog](<https://devfeed.tech/sources/windmill-blog.md>)

Topics: [Compiler](<https://devfeed.tech/topics/compiler.md>), [Job](<https://devfeed.tech/topics/job.md>), [airflow](<https://devfeed.tech/topics/airflow.md>), [data](<https://devfeed.tech/topics/data.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>)

Tags: [airflow](<https://devfeed.tech/tags/airflow.md>), [bigquery](<https://devfeed.tech/tags/bigquery.md>), [cli](<https://devfeed.tech/tags/cli.md>), [dagster](<https://devfeed.tech/tags/dagster.md>), [data](<https://devfeed.tech/tags/data.md>), [data-pipelines](<https://devfeed.tech/tags/data-pipelines.md>), [dbt](<https://devfeed.tech/tags/dbt.md>), [dbt-data-pipelines-airflow-dagster-orchestration](<https://devfeed.tech/tags/dbt-data-pipelines-airflow-dagster-orchestration.md>), [job](<https://devfeed.tech/tags/job.md>), [orchestration](<https://devfeed.tech/tags/orchestration.md>), [scheduler](<https://devfeed.tech/tags/scheduler.md>), [series](<https://devfeed.tech/tags/series.md>)

### AI overview

This primer explains dbt's architecture and examines five ways teams orchestrate it in production. It argues that running a project as one dbt command, while reading dbt's per-model execution state, is generally more efficient and less fragile than creating one orchestrator task per model. It discusses Dagster and astronomer-cosmos's convergence on this approach, including a reported cost comparison.

### Source excerpt

How is dbt actually orchestrated, and why does running it as one job beat one task per model? A primer on dbt as a compiler with a scheduler attached, the five ways teams wrap it, and why both Dagster and astronomer-cosmos converged on a single dbt invocation with per-model state projected out of it.

## Kubernetes Control Plane Internals and Reconciliation

DevFeed: [Kubernetes Control Plane Internals and Reconciliation](<https://devfeed.tech/articles/kubernetes-internals-control-plane-explained-18129.md>)

Original publisher: [Read original article](<https://hungrymindsdev.substack.com/p/kubernetes-internals-control-plane>)

Author: Alexandre Zajac

Published: 2026-08-03T15:31:23Z

Content type: tutorial

Language: en

Sources: [Hungry Minds](<https://devfeed.tech/sources/hungry-minds.md>)

Topics: [Kubernetes](<https://devfeed.tech/topics/kubernetes.md>), [distributed-systems](<https://devfeed.tech/topics/distributed-systems.md>), [Containers](<https://devfeed.tech/topics/containers.md>)

Tags: [container](<https://devfeed.tech/tags/container.md>), [internals](<https://devfeed.tech/tags/internals.md>), [kubernetes](<https://devfeed.tech/tags/kubernetes.md>), [reconciliation](<https://devfeed.tech/tags/reconciliation.md>), [scheduler](<https://devfeed.tech/tags/scheduler.md>)

### AI overview

This article explains how Kubernetes manages distributed workloads through its control plane, worker nodes, and reconciliation loop. It covers the API server, etcd, scheduling, kubelet, desired-versus-actual state, and automated recovery.

### Source excerpt

PLUS: Ray 2x throughput boost ⚡, take-home interview breakdown 🔬, great work principles 📚

## Keeping the peering inventory honest

DevFeed: [Keeping the peering inventory honest](<https://devfeed.tech/articles/keeping-the-peering-inventory-honest-36152.md>)

Original publisher: [Read original article](<https://as215248.net/notes/keeping-the-inventory-honest/>)

Author: Bastiaan Brink

Published: 2026-07-30T00:00:00Z

Content type: tutorial

Language: en

Sources: [AS215248 - Notes](<https://devfeed.tech/sources/as215248-notes.md>)

Topics: [Database](<https://devfeed.tech/topics/database.md>), [API](<https://devfeed.tech/topics/api.md>), [Job](<https://devfeed.tech/topics/job.md>), [Python](<https://devfeed.tech/topics/python.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [authentication](<https://devfeed.tech/tags/authentication.md>), [automation](<https://devfeed.tech/tags/automation.md>), [cloudflare](<https://devfeed.tech/tags/cloudflare.md>), [database](<https://devfeed.tech/tags/database.md>), [ops](<https://devfeed.tech/tags/ops.md>), [peering](<https://devfeed.tech/tags/peering.md>), [python](<https://devfeed.tech/tags/python.md>), [scheduler](<https://devfeed.tech/tags/scheduler.md>)

### AI overview

The article describes keeping Peering Manager's inventory synchronized with router state by mirroring portal changes and running a 15-minute reconciliation job. It also documents API integration pitfalls and fixes a failed daily PeeringDB sync by pinning the service image to a digest.

### Source excerpt

A database that says you have a session is worthless if the router disagrees. A 15-minute reconcile keeps Peering Manager and the routers in step.

## How the Operating System Runs Many Tasks on One CPU

DevFeed: [How the Operating System Runs Many Tasks on One CPU](<https://devfeed.tech/articles/how-the-operating-system-runs-many-tasks-on-one-cpu-18193.md>)

Original publisher: [Read original article](<https://newsletter.francofernando.com/p/how-the-operating-system-runs-many>)

Author: Franco Fernando

Published: 2026-07-11T08:25:54Z

Content type: article

Language: en

Sources: [The Polymathic Engineer](<https://devfeed.tech/sources/the-polymathic-engineer.md>)

Topics: [Operating system](<https://devfeed.tech/topics/operating-system.md>), [cpu](<https://devfeed.tech/topics/cpu.md>), [context](<https://devfeed.tech/topics/context.md>)

Tags: [context](<https://devfeed.tech/tags/context.md>), [cpu](<https://devfeed.tech/tags/cpu.md>), [multitasking](<https://devfeed.tech/tags/multitasking.md>), [scheduler](<https://devfeed.tech/tags/scheduler.md>), [switching](<https://devfeed.tech/tags/switching.md>)

### AI overview

This article explains how an operating system runs many tasks on one CPU through multitasking, context switching, and scheduling.

### Source excerpt

Multitasking, context switching, and the scheduler that makes it all work.

## How the Kubernetes control plane works

DevFeed: [How the Kubernetes control plane works](<https://devfeed.tech/articles/how-the-kubernetes-control-plane-works-19135.md>)

Original publisher: [Read original article](<https://learnkube.com/kubernetes-control-plane>)

Author: LearnKube

Published: 2026-04-17T00:00:00Z

Content type: tutorial

Language: en

Sources: [Learnk8s](<https://devfeed.tech/sources/learnk8s.md>)

Topics: [Kubernetes](<https://devfeed.tech/topics/kubernetes.md>), [API](<https://devfeed.tech/topics/api.md>), [Cloud Native Ecosystem](<https://devfeed.tech/topics/cloud-native-ecosystem.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [api-server](<https://devfeed.tech/tags/api-server.md>), [authentication](<https://devfeed.tech/tags/authentication.md>), [authorization](<https://devfeed.tech/tags/authorization.md>), [declarative](<https://devfeed.tech/tags/declarative.md>), [kubernetes](<https://devfeed.tech/tags/kubernetes.md>), [reconciliation](<https://devfeed.tech/tags/reconciliation.md>), [scheduler](<https://devfeed.tech/tags/scheduler.md>), [schema](<https://devfeed.tech/tags/schema.md>)

### AI overview

This tutorial explains how the Kubernetes control plane accepts changes, stores desired state, and keeps a cluster aligned with that state. It introduces the API server, etcd, scheduler, and controller manager, then describes request validation and persistence in etcd.

### Source excerpt

A visual map of the Kubernetes control plane with linked deep dives into the API server, scheduler, controller manager, and etcd.

## How does the Kubernetes scheduler work?

DevFeed: [How does the Kubernetes scheduler work?](<https://devfeed.tech/articles/how-does-the-kubernetes-scheduler-work-19140.md>)

Original publisher: [Read original article](<https://learnkube.com/kubernetes-scheduler-explained>)

Author: Daniele Polencic

Published: 2026-02-09T00:00:00Z

Content type: tutorial

Language: en

Sources: [Learnk8s](<https://devfeed.tech/sources/learnk8s.md>)

Topics: [Kubernetes](<https://devfeed.tech/topics/kubernetes.md>)

Tags: [deployment](<https://devfeed.tech/tags/deployment.md>), [kubernetes](<https://devfeed.tech/tags/kubernetes.md>), [scheduler](<https://devfeed.tech/tags/scheduler.md>), [work](<https://devfeed.tech/tags/work.md>)

### AI overview

This tutorial explains how the Kubernetes scheduler assigns pods to worker nodes by filtering unsuitable nodes and scoring the remaining candidates. It also clarifies the roles of the controller manager, ReplicaSets, the API server, and the scheduler queue.

### Source excerpt

The Kubernetes scheduler decides where your pods run. Learn how it filters nodes, scores candidates, and assigns workloads to the right place in your cluster.

## Redesigning my microkernel from the ground up

DevFeed: [Redesigning my microkernel from the ground up](<https://devfeed.tech/articles/redesigning-my-microkernel-from-the-ground-up-20797.md>)

Original publisher: [Read original article](<https://drewdevault.com/blog/Hermes-from-the-ground-up/>)

Author: January

Published: 2026-01-12T00:00:00Z

Content type: opinion

Language: en

Sources: [Drew DeVault](<https://devfeed.tech/sources/drew-devault.md>)

Topics: [systems](<https://devfeed.tech/topics/systems.md>), [Kernel](<https://devfeed.tech/topics/kernel.md>), [kernels](<https://devfeed.tech/topics/kernels.md>), [Development](<https://devfeed.tech/topics/development.md>), [Code](<https://devfeed.tech/topics/code.md>), [Unix](<https://devfeed.tech/topics/unix.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [cpu](<https://devfeed.tech/tags/cpu.md>), [development](<https://devfeed.tech/tags/development.md>), [kernel](<https://devfeed.tech/tags/kernel.md>), [kernels](<https://devfeed.tech/tags/kernels.md>), [operating-systems](<https://devfeed.tech/tags/operating-systems.md>), [os](<https://devfeed.tech/tags/os.md>), [scheduler](<https://devfeed.tech/tags/scheduler.md>), [systems](<https://devfeed.tech/tags/systems.md>), [unix](<https://devfeed.tech/tags/unix.md>)

### AI overview

The author explains why the Helios microkernel project was abandoned after design and implementation problems, and describes starting Hermes from scratch while reusing selected code from Helios and Bunnix. Hermes is not yet feature-complete, but the author says it has a more robust design and supports symmetric multiprocessing.

### Source excerpt

As you may recall, circa 2022-2023 I was working on a microkernel written in Hare named Helios. Helios was largely inspired by and modelled after the design of seL4 and was my first major foray into modern OS development that was serious enough to get to a somewhat useful state of functionality, with drives for some real hardware, filesystems, and an environment for running user programs of a reasonable level of sophistication. Helios development went strong for a while but eventually it slowed and eventually halted in a state of design hell. Since Helios was my first major OS project at this scale and with this much ambition, the design and implementation ended up with a lot of poor assumptions that made it a pretty weak foundation for building a complete OS upon. In late 2023 I more or less gave up on it and moved my OS development work out of the realm of writing code and back into the realm of thinking really hard about how to design operating systems. What followed was a couple of years of design thinking, developing small scale design experiments, and doing deeper research into prior art - reading papers and studying existing kernels. It was also during this period that I wrote Bunnix, a working Unix clone, motivated in part by a desire to gain some first-hand experience working in the design and implementation of Unix-style operating systems - a fertile environment for learning a lot of the nuts and bolts of OS implementations by working against a complete and proven design. In August I was finally prepared to have another go. I decided to start over from scratch, importing and adapting and rewriting code from Helios and Bunnix on an as-needed basis to speed things up, and writing from scratch anything where the lessons learned in hindsight outweighed the benefits of adapting existing code.1 The result is Hermes. Hermes has not yet reached feature parity with Helios, lacking some IPC features and an aarch64 port, but already it's significantly more robust and

## Temporal Ruby SDK Reaches General Availability with Rust Core and Deterministic Fiber Scheduler

DevFeed: [Temporal Ruby SDK Reaches General Availability with Rust Core and Deterministic Fiber Scheduler](<https://devfeed.tech/articles/temporal-ruby-crash-proof-fibers-36030.md>)

Original publisher: [Read original article](<https://temporal.io/blog/temporal-ruby-crash-proof-fibers>)

Author: Chad Retz

Published: 2025-10-16T00:00:00Z

Content type: article

Language: en

Sources: [Temporal Blog](<https://devfeed.tech/sources/temporal-blog.md>)

Topics: [Ruby](<https://devfeed.tech/topics/ruby.md>), [SDKs](<https://devfeed.tech/topics/sdks.md>), [Rust](<https://devfeed.tech/topics/rust.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [cancellation](<https://devfeed.tech/topics/cancellation.md>), [Code](<https://devfeed.tech/topics/code.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>)

Tags: [announcements](<https://devfeed.tech/tags/announcements.md>), [asynchronous](<https://devfeed.tech/tags/asynchronous.md>), [cancellation](<https://devfeed.tech/tags/cancellation.md>), [fiber](<https://devfeed.tech/tags/fiber.md>), [guardrails](<https://devfeed.tech/tags/guardrails.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [ruby](<https://devfeed.tech/tags/ruby.md>), [rust](<https://devfeed.tech/tags/rust.md>), [scheduler](<https://devfeed.tech/tags/scheduler.md>), [sdk](<https://devfeed.tech/tags/sdk.md>), [workflows](<https://devfeed.tech/tags/workflows.md>)

### AI overview

Temporal Ruby is now generally available, providing Ruby developers with a native-feeling SDK for building durable software and Workflows. The article introduces its programming model and demonstrates Activities, deterministic fibers, durable timers, cancellation, and updates, while also discussing the Rust-powered implementation and execution guardrails.

### Source excerpt

Temporal Ruby SDK is GA. Build durable Ruby Workflows with native APIs, a Rust-powered core, a deterministic fiber scheduler, and guardrails for safe execution.

## How we replaced the default K8s scheduler to optimize our Continuous Integration builds

DevFeed: [How we replaced the default K8s scheduler to optimize our Continuous Integration builds](<https://devfeed.tech/articles/how-we-replaced-the-default-k8s-scheduler-to-optimize-our-continuous-integration-builds-17678.md>)

Original publisher: [Read original article](<https://codefresh.io/blog/custom-k8s-scheduler-continuous-integration/>)

Author: Vadim Gusev

Published: 2025-07-07T11:57:20Z

Content type: article

Language: en

Sources: [Codefresh](<https://devfeed.tech/sources/codefresh.md>)

Topics: [Kubernetes](<https://devfeed.tech/topics/kubernetes.md>), [ci](<https://devfeed.tech/topics/ci.md>)

Tags: [clusters](<https://devfeed.tech/tags/clusters.md>), [codefresh](<https://devfeed.tech/tags/codefresh.md>), [continuous-integration](<https://devfeed.tech/tags/continuous-integration.md>), [devops](<https://devfeed.tech/tags/devops.md>), [glossary](<https://devfeed.tech/tags/glossary.md>), [k8s](<https://devfeed.tech/tags/k8s.md>), [kubernetes](<https://devfeed.tech/tags/kubernetes.md>), [orchestration](<https://devfeed.tech/tags/orchestration.md>), [pipeline](<https://devfeed.tech/tags/pipeline.md>), [product-and-tools](<https://devfeed.tech/tags/product-and-tools.md>), [scheduler](<https://devfeed.tech/tags/scheduler.md>)

### AI overview

Codefresh describes replacing the default Kubernetes scheduler for clusters running ephemeral Continuous Integration pipelines. The article explains how this workload differed from long-running applications and motivated a different approach to Kubernetes scheduling.

### Source excerpt

The default Kubernetes scheduler works great when your cluster is destined for long running applications. At Codefresh we use our Kubernetes clusters for running Continuous Integration pipelines which means our workloads are ephemeral (they are discarded when a pipeline has finished). This allowed us to look at the Kubernetes scheduler from a different perspective and [...] The post How we replaced the default K8s scheduler to optimize our Continuous Integration builds appeared first on Codefresh.

## Scheduling In Go : Part II - Go Scheduler

DevFeed: [Scheduling In Go : Part II - Go Scheduler](<https://devfeed.tech/articles/scheduling-in-go-part-ii-go-scheduler-22138.md>)

Original publisher: [Read original article](<https://www.ardanlabs.com/blog/2018/08/scheduling-in-go-part2.html>)

Published: 2025-04-14T00:00:00Z

Content type: article

Language: en

Sources: [William Kennedy](<https://devfeed.tech/sources/william-kennedy.md>)

Topics: [Go Language](<https://devfeed.tech/topics/go-language.md>), [Concurrency](<https://devfeed.tech/topics/concurrency.md>), [Optimization](<https://devfeed.tech/topics/optimization.md>), [systems](<https://devfeed.tech/topics/systems.md>)

Tags: [ardan-labs](<https://devfeed.tech/tags/ardan-labs.md>), [blog](<https://devfeed.tech/tags/blog.md>), [concurrency](<https://devfeed.tech/tags/concurrency.md>), [concurrent](<https://devfeed.tech/tags/concurrent.md>), [context](<https://devfeed.tech/tags/context.md>), [go](<https://devfeed.tech/tags/go.md>), [go-programming](<https://devfeed.tech/tags/go-programming.md>), [golang](<https://devfeed.tech/tags/golang.md>), [optimization](<https://devfeed.tech/tags/optimization.md>), [os](<https://devfeed.tech/tags/os.md>), [parallel](<https://devfeed.tech/tags/parallel.md>), [programming](<https://devfeed.tech/tags/programming.md>), [scheduler](<https://devfeed.tech/tags/scheduler.md>), [switching](<https://devfeed.tech/tags/switching.md>), [systems](<https://devfeed.tech/tags/systems.md>), [threads](<https://devfeed.tech/tags/threads.md>)

### AI overview

The second article in a three-part series explains the Go scheduler at a semantic level. It covers logical processors, global and local run queues, context switching, work stealing, and synchronous and asynchronous system calls.

### Source excerpt

This blogpost is the second installment in a three-part series exploring the mechanics and semantics of the Go scheduler. Despite being published in 2018, the content remains relevant today, as the Go scheduler's design continues to influence the development of efficient and scalable concurrent systems. In this post, we will go into the inner workings of the Go scheduler, discussing its components, such as the Global Run Queue (GRQ) and Local Run Queue (LRQ), and its behavior, including context switching, work stealing, and the handling of synchronous and asynchronous system calls. By understanding these concepts, developers can make informed decisions about concurrency and optimization in their Go applications.

## Eco and Mini Plans Now Generally Available

DevFeed: [Eco and Mini Plans Now Generally Available](<https://devfeed.tech/articles/eco-and-mini-plans-now-generally-available-26398.md>)

Original publisher: [Read original article](<https://www.heroku.com/blog/eco-and-mini-plans-ga/>)

Author: Chris Peterson

Published: 2022-11-08T00:10:00Z

Content type: release

Language: en

Sources: [Heroku](<https://devfeed.tech/sources/heroku.md>)

Topics: [Heroku](<https://devfeed.tech/topics/heroku.md>), [upgrade](<https://devfeed.tech/topics/upgrade.md>), [Redis](<https://devfeed.tech/topics/redis.md>), [Databases](<https://devfeed.tech/topics/databases.md>), [dashboards](<https://devfeed.tech/topics/dashboards.md>)

Tags: [applications](<https://devfeed.tech/tags/applications.md>), [apps](<https://devfeed.tech/tags/apps.md>), [data](<https://devfeed.tech/tags/data.md>), [databases](<https://devfeed.tech/tags/databases.md>), [dynos](<https://devfeed.tech/tags/dynos.md>), [free](<https://devfeed.tech/tags/free.md>), [heroku](<https://devfeed.tech/tags/heroku.md>), [heroku-postgres](<https://devfeed.tech/tags/heroku-postgres.md>), [news](<https://devfeed.tech/tags/news.md>), [redis](<https://devfeed.tech/tags/redis.md>), [scheduler](<https://devfeed.tech/tags/scheduler.md>), [upgrade](<https://devfeed.tech/tags/upgrade.md>)

### AI overview

Heroku announces the general availability of Eco dynos and Mini plans for Heroku Postgres and Heroku Data for Redis. The plans are available for new and existing applications, with free access for eligible card-paying customers until November 30, 2022, before charges begin on December 1, 2022.

### Source excerpt

In September, we announced our new low-cost Eco dynos plan and Mini plans for Heroku Postgres and Heroku Data for Redis®. The time has come! These plans are available today for new and existing applications. For customers paying by credit or debit card, the Eco dynos and Mini data plans are free until November 30th, [...] The post Eco and Mini Plans Now Generally Available appeared first on Heroku.

## How to test intermediate steps in suspending functions

DevFeed: [How to test intermediate steps in suspending functions](<https://devfeed.tech/articles/how-to-test-intermediate-steps-in-suspending-functions-37170.md>)

Original publisher: [Read original article](<https://arkadiuszchmura.com/posts/how-to-test-intermediate-steps-in-suspending-functions/>)

Published: 2022-09-30T00:00:00Z

Content type: tutorial

Language: en

Sources: [Arkadiusz Chmura](<https://devfeed.tech/sources/arkadiusz-chmura.md>)

Topics: [Testing](<https://devfeed.tech/topics/testing.md>), [Coroutines](<https://devfeed.tech/topics/coroutines.md>), [execution](<https://devfeed.tech/topics/execution.md>)

Tags: [code-testing](<https://devfeed.tech/tags/code-testing.md>), [coroutines](<https://devfeed.tech/tags/coroutines.md>), [dispatcher](<https://devfeed.tech/tags/dispatcher.md>), [scheduler](<https://devfeed.tech/tags/scheduler.md>), [testing](<https://devfeed.tech/tags/testing.md>), [virtual](<https://devfeed.tech/tags/virtual.md>)

### AI overview

This tutorial explains how to test intermediate state changes inside suspending functions. It shows how coroutine test dispatchers and virtual-time controls can verify behavior before and after a suspended network call without waiting through real delays.

### Source excerpt

Testing the final result of a suspending function is easy, but what about verifying what happens inside it during the execution?

## Lessons Learned From Running Apache Airflow at Scale

DevFeed: [Lessons Learned From Running Apache Airflow at Scale](<https://devfeed.tech/articles/lessons-learned-from-running-apache-airflow-at-scale-1467.md>)

Original publisher: [Read original article](<https://shopify.engineering/lessons-learned-apache-airflow-scale>)

Author: Megan Parker

Published: 2022-05-23T14:00:01Z

Content type: article

Language: en

Sources: [Shopify Engineering](<https://devfeed.tech/sources/shopify-engineering.md>), [Shopify Engineering - Shopify Engineering](<https://devfeed.tech/sources/shopify-engineering-shopify-engineering.md>)

Topics: [airflow](<https://devfeed.tech/topics/airflow.md>), [Orchestration](<https://devfeed.tech/topics/orchestration.md>), [Shopify](<https://devfeed.tech/topics/shopify.md>), [Kubernetes](<https://devfeed.tech/topics/kubernetes.md>), [Google Cloud Platform (GCP)](<https://devfeed.tech/topics/google-cloud.md>), [MySQL](<https://devfeed.tech/topics/mysql.md>), [Apache Iceberg](<https://devfeed.tech/topics/apache-iceberg.md>), [Training AI Models](<https://devfeed.tech/topics/training-ai-models.md>), [data-modeling](<https://devfeed.tech/topics/data-modeling.md>)

Tags: [airflow](<https://devfeed.tech/tags/airflow.md>), [apache](<https://devfeed.tech/tags/apache.md>), [cloud](<https://devfeed.tech/tags/cloud.md>), [cloud-storage](<https://devfeed.tech/tags/cloud-storage.md>), [data-modeling](<https://devfeed.tech/tags/data-modeling.md>), [google-cloud](<https://devfeed.tech/tags/google-cloud.md>), [kubernetes](<https://devfeed.tech/tags/kubernetes.md>), [load](<https://devfeed.tech/tags/load.md>), [machine-learning](<https://devfeed.tech/tags/machine-learning.md>), [model-training](<https://devfeed.tech/tags/model-training.md>), [monitoring](<https://devfeed.tech/tags/monitoring.md>), [mount](<https://devfeed.tech/tags/mount.md>), [mysql](<https://devfeed.tech/tags/mysql.md>), [orchestration](<https://devfeed.tech/tags/orchestration.md>), [scale](<https://devfeed.tech/tags/scale.md>), [scheduler](<https://devfeed.tech/tags/scheduler.md>), [shopify](<https://devfeed.tech/tags/shopify.md>), [solutions](<https://devfeed.tech/tags/solutions.md>), [workflows](<https://devfeed.tech/tags/workflows.md>)

### AI overview

Shopify explains lessons from operating Apache Airflow at scale for more than two years. The deployment runs on Kubernetes with the Celery executor and MySQL, supporting data extraction, machine learning model training, Apache Iceberg table maintenance, and DBT-powered data modeling. The article describes scaling to more than 10,000 DAGs, over 400 concurrent tasks, and more than 150,000 daily runs, along with challenges involving file access, DAG capabilities, traffic variability, and resource contention.

### Source excerpt

Shopify shares some of the lessons we learned and solutions we built in order to run Airflow at scale.

## How to schedule jobs with Quartz on Ktor

DevFeed: [How to schedule jobs with Quartz on Ktor](<https://devfeed.tech/articles/how-to-schedule-jobs-with-quartz-on-ktor-25567.md>)

Original publisher: [Read original article](<https://www.marcogomiero.com/posts/2022/ktor-jobs-quartz/>)

Author: Marco Gomiero

Published: 2022-04-22T00:00:00Z

Content type: tutorial

Language: en

Sources: [Posts on Marco Gomiero](<https://devfeed.tech/sources/posts-on-marco-gomiero.md>)

Topics: [Ktor](<https://devfeed.tech/topics/ktor.md>), [Quartz](<https://devfeed.tech/topics/quartz.md>), [Back end](<https://devfeed.tech/topics/backend.md>), [Database](<https://devfeed.tech/topics/database.md>), [Persistence](<https://devfeed.tech/topics/persistence.md>), [MySQL](<https://devfeed.tech/topics/mysql.md>)

Tags: [backend](<https://devfeed.tech/tags/backend.md>), [database](<https://devfeed.tech/tags/database.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [ktor](<https://devfeed.tech/tags/ktor.md>), [mysql](<https://devfeed.tech/tags/mysql.md>), [persistence](<https://devfeed.tech/tags/persistence.md>), [quartz](<https://devfeed.tech/tags/quartz.md>), [scheduler](<https://devfeed.tech/tags/scheduler.md>), [scheduling](<https://devfeed.tech/tags/scheduling.md>)

### AI overview

This tutorial explains how to schedule recurring jobs in a Ktor backend project using Quartz. It covers Quartz's persistence of job state, database table setup, logging configuration, and scheduler creation, with MySQL used in the example.

### Source excerpt

SERIES: Building a backend with Ktor Part 1: Structuring a Ktor project Part 2: How to persist Ktor logs Part 3: How to use an in-memory database for testing on Ktor Part 4: How to handle database migrations with Liquibase on Ktor Part 5: Generate API documentation from Swagger on Ktor Part 6: How to schedule jobs with Quartz on Ktor Part 7: Moving from mobile to backend development with Ktor Sometimes, on a backend project, there is the need to run one or more tasks periodically, like for system administration, maintenance, backup, syncing content in the background, etc. These types of tasks can be scheduled "manually" with a cron job or with a scheduling library like Quartz, that makes easy for example the persistence of the task's state even after a reboot of the server.

## Tutorial: Authentication and Authorization for Kubernetes

DevFeed: [Tutorial: Authentication and Authorization for Kubernetes](<https://devfeed.tech/articles/tutorial-authentication-and-authorization-for-kubernetes-29576.md>)

Original publisher: [Read original article](<https://goteleport.com/blog/authn-authz-tutorial-kubernetes/>)

Author: info@goteleport.com (Lukonde Mwila)

Published: 2022-02-15T00:00:00Z

Content type: tutorial

Language: en

Sources: [Teleport](<https://devfeed.tech/sources/teleport.md>)

Topics: [Kubernetes](<https://devfeed.tech/topics/kubernetes.md>), [Tutorial](<https://devfeed.tech/topics/tutorial.md>), [Authentication](<https://devfeed.tech/topics/authentication.md>), [Authorization](<https://devfeed.tech/topics/authorization.md>)

Tags: [access-control](<https://devfeed.tech/tags/access-control.md>), [api](<https://devfeed.tech/tags/api.md>), [api-server](<https://devfeed.tech/tags/api-server.md>), [authentication](<https://devfeed.tech/tags/authentication.md>), [authn](<https://devfeed.tech/tags/authn.md>), [authorization](<https://devfeed.tech/tags/authorization.md>), [authz](<https://devfeed.tech/tags/authz.md>), [cli](<https://devfeed.tech/tags/cli.md>), [crud](<https://devfeed.tech/tags/crud.md>), [devops](<https://devfeed.tech/tags/devops.md>), [kubernetes](<https://devfeed.tech/tags/kubernetes.md>), [permissions](<https://devfeed.tech/tags/permissions.md>), [scheduler](<https://devfeed.tech/tags/scheduler.md>), [security](<https://devfeed.tech/tags/security.md>), [tutorial](<https://devfeed.tech/tags/tutorial.md>)

### AI overview

This tutorial explains the difference between authentication and authorization in Kubernetes. It describes how the Kubernetes API server validates the identity of users or other entities and checks whether they have permission to perform requested operations.

### Source excerpt

The difference between who gets to access (AuthN) a Kubernetes cluster and what they can do with those permissions (AuthZ)

## How etcd works with and without Kubernetes

DevFeed: [How etcd works with and without Kubernetes](<https://devfeed.tech/articles/how-etcd-works-with-and-without-kubernetes-19131.md>)

Original publisher: [Read original article](<https://learnkube.com/etcd-kubernetes>)

Author: Emanuel Evans

Published: 2021-07-21T00:00:00Z

Content type: tutorial

Language: en

Sources: [Learnk8s](<https://devfeed.tech/sources/learnk8s.md>)

Topics: [Kubernetes](<https://devfeed.tech/topics/kubernetes.md>), [Database](<https://devfeed.tech/topics/database.md>), [API](<https://devfeed.tech/topics/api.md>), [Processes](<https://devfeed.tech/topics/processes.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [authentication](<https://devfeed.tech/tags/authentication.md>), [authorization](<https://devfeed.tech/tags/authorization.md>), [database](<https://devfeed.tech/tags/database.md>), [deep-dive](<https://devfeed.tech/tags/deep-dive.md>), [deployment](<https://devfeed.tech/tags/deployment.md>), [distributed](<https://devfeed.tech/tags/distributed.md>), [key-value-store](<https://devfeed.tech/tags/key-value-store.md>), [kubernetes](<https://devfeed.tech/tags/kubernetes.md>), [process](<https://devfeed.tech/tags/process.md>), [scheduler](<https://devfeed.tech/tags/scheduler.md>), [server](<https://devfeed.tech/tags/server.md>)

### AI overview

A deep dive into etcd as Kubernetes' database, explaining how it fits into the control plane and how to build, configure, and troubleshoot a 3-node etcd cluster.

### Source excerpt

Deep dive into etcd distributed key-value store and how Kubernetes uses it as its database. Learn to build, configure, and troubleshoot a 3-node etcd cluster with practical examples.

## Unit Tests and Concurrency

DevFeed: [Unit Tests and Concurrency](<https://devfeed.tech/articles/unit-tests-and-concurrency-25874.md>)

Original publisher: [Read original article](<http://lordraydenmk.github.io//2021/unit-tests-and-concurrency/>)

Author: Stojan Anastasov

Published: 2021-01-06T00:00:00Z

Content type: tutorial

Language: en

Sources: [Stojan Anastasov's blog](<https://devfeed.tech/sources/stojan-anastasov-s-blog.md>)

Topics: [RxJava](<https://devfeed.tech/topics/rxjava.md>), [Concurrency](<https://devfeed.tech/topics/concurrency.md>), [Android](<https://devfeed.tech/topics/android.md>), [Testing](<https://devfeed.tech/topics/testing.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [api](<https://devfeed.tech/tags/api.md>), [concurrency](<https://devfeed.tech/tags/concurrency.md>), [junit](<https://devfeed.tech/tags/junit.md>), [observeon](<https://devfeed.tech/tags/observeon.md>), [recyclerview](<https://devfeed.tech/tags/recyclerview.md>), [rxjava](<https://devfeed.tech/tags/rxjava.md>), [scheduler](<https://devfeed.tech/tags/scheduler.md>), [testing](<https://devfeed.tech/tags/testing.md>), [tests](<https://devfeed.tech/tags/tests.md>), [trampoline](<https://devfeed.tech/tags/trampoline.md>)

### AI overview

This tutorial explains how replacing RxJava schedulers with a single test scheduler can hide concurrency problems. It presents an Android example involving concurrent API calls and discusses refactoring the RxJava chain to update the UI as results become available.

### Source excerpt

Once Retrofit added RxJava support, RxJava became my go-to concurrency framework for writing Android apps. One of the great things about RxJava is the excellent testing support. It includes TestObserver, TestScheduler, RxJavaPlugins so you can switch your schedulers in tests. A common approach in testing RxJava code is using a JUnit rule that replaces the Scheduler pools with Schedulers.trampoline() before tests are run and resets them to the original thread pools after the tests. This makes the whole Observable chain runs on a single thread, the same thread the test runs on, which means we can write assertions without worrying about concurrency. However the production code usually is not single threaded. IO operations are done on the IO thread pool, views are updated on the main thread and everything else happens on the computation pool. By using different schedulers in the tests and using a different strategy (single threaded) we make those unit tests useless in catching concurrency issues. A real world scenario I was working on a side project. The screen consists of a RecyclerView displaying a list of elements. To get the elements I need to perform two different API calls. The first API call returns a list with N elements, then for each item in the list I need to perform the second call. After combining the data I send it to the UI for displaying. Using RxJava this looks like: // Emits Loading then Content or Problem private fun requestData(): Observable<ViewState> = service.firstApiCall() .observeOn(Schedulers.computation()) .map { it.message } .flatMap(this::secondApiCall) .map<ViewState> { ViewState.Content(it) } .startWith(Single.just(ViewState.Loading)) .onErrorReturn { ViewState.Problem } .toObservable() // Concurrently executes secondApiCall for each element in list. // Transforms the result to ViewEntity, combines everything in a list private fun secondApiCall(list: List<String>): Single<List<ViewEntity>> = Observable.fromIterable(list) .concatMapEager {

## Apache Airflow 2.0 is here!

DevFeed: [Apache Airflow 2.0 is here!](<https://devfeed.tech/articles/apache-airflow-2-0-is-here-32551.md>)

Original publisher: [Read original article](<https://airflow.apache.org/blog/airflow-two-point-oh-is-here/>)

Author: Apache Airflow

Published: 2020-12-17T00:00:00Z

Content type: release

Language: en

Sources: [Apache Airflow Blog](<https://devfeed.tech/sources/apache-airflow-blog.md>)

Topics: [airflow](<https://devfeed.tech/topics/airflow.md>), [API](<https://devfeed.tech/topics/api.md>), [REST API](<https://devfeed.tech/topics/rest-api.md>), [OpenAPI Specification](<https://devfeed.tech/topics/openapi.md>), [resiliency](<https://devfeed.tech/topics/resiliency.md>)

Tags: [airflow](<https://devfeed.tech/tags/airflow.md>), [announce](<https://devfeed.tech/tags/announce.md>), [apache-airflow](<https://devfeed.tech/tags/apache-airflow.md>), [api](<https://devfeed.tech/tags/api.md>), [api-documentation](<https://devfeed.tech/tags/api-documentation.md>), [ha](<https://devfeed.tech/tags/ha.md>), [improvements](<https://devfeed.tech/tags/improvements.md>), [openapi](<https://devfeed.tech/tags/openapi.md>), [release](<https://devfeed.tech/tags/release.md>), [rest-api](<https://devfeed.tech/tags/rest-api.md>), [scheduler](<https://devfeed.tech/tags/scheduler.md>)

### AI overview

Apache Airflow 2.0.0 has been released with the TaskFlow API for authoring DAGs, a fully supported REST API with an OpenAPI specification, scheduler performance improvements, support for multiple highly available schedulers, and Task Groups for organizing tasks.

### Source excerpt

I am proud to announce that Apache Airflow 2.0.0 has been released. The full changelog is about 3,000 lines long (already excluding everything backported to 1.10), so for now I'll simply share some of the major features in 2.0.0 compared to 1.10.14: A new way of writing dags: the TaskFlow API (AIP-31) (Known in 2.0.0alphas as Functional DAGs.) DAGs are now much much nicer to author especially when using PythonOperator. Dependencies are handled more clearly and XCom is nicer to use Read more here: TaskFlow API Tutorial TaskFlow API Documentation A quick teaser of what DAGs can now look like: from airflow.decorators import dag, task from airflow.utils.dates import days_ago @dag(default_args={'owner': 'airflow'}, schedule_interval=None, start_date=days_ago(2)) def tutorial_taskflow_api_etl(): @task def extract(): return {"1001": 301.27, "1002": 433.21, "1003": 502.22} @task def transform(order_data_dict: dict) -> dict: total_order_value = 0 for value in order_data_dict.values(): total_order_value += value return {"total_order_value": total_order_value} @task() def load(total_order_value: float): print("Total order value is: %.2f" % total_order_value) order_data = extract() order_summary = transform(order_data) load(order_summary["total_order_value"]) tutorial_etl_dag = tutorial_taskflow_api_etl() Fully specified REST API (AIP-32) We now have a fully supported, no-longer-experimental API with a comprehensive OpenAPI specification Read more here: REST API Documentation. Massive Scheduler performance improvements As part of AIP-15 (Scheduler HA+performance) and other work Kamil did, we significantly improved the performance of the Airflow Scheduler. It now starts tasks much, MUCH quicker. Over at Astronomer.io we've benchmarked the scheduler--it's fast (we had to triple check the numbers as we don't quite believe them at first!) Scheduler is now HA compatible (AIP-15) It's now possible and supported to run more than a single scheduler instance. This is super useful for bot

## Apache Airflow For Newcomers

DevFeed: [Apache Airflow For Newcomers](<https://devfeed.tech/articles/apache-airflow-for-newcomers-32556.md>)

Original publisher: [Read original article](<https://airflow.apache.org/blog/apache-airflow-for-newcomers/>)

Author: Apache Airflow

Published: 2020-08-17T00:00:00Z

Content type: tutorial

Language: en

Sources: [Apache Airflow Blog](<https://devfeed.tech/sources/apache-airflow-blog.md>)

Topics: [airflow](<https://devfeed.tech/topics/airflow.md>), [Development](<https://devfeed.tech/topics/development.md>)

Tags: [airflow](<https://devfeed.tech/tags/airflow.md>), [apache-airflow](<https://devfeed.tech/tags/apache-airflow.md>), [community](<https://devfeed.tech/tags/community.md>), [dependencies](<https://devfeed.tech/tags/dependencies.md>), [python](<https://devfeed.tech/tags/python.md>), [scheduler](<https://devfeed.tech/tags/scheduler.md>), [scheduling](<https://devfeed.tech/tags/scheduling.md>), [tasks](<https://devfeed.tech/tags/tasks.md>), [workflows](<https://devfeed.tech/tags/workflows.md>)

### AI overview

This tutorial introduces Apache Airflow for newcomers, explaining how to author workflows with Python scripts, represent them as DAGs, define task dependencies, and use the scheduler to execute tasks when dependencies are met.

### Source excerpt

Apache Airflow is a platform to programmatically author, schedule, and monitor workflows. A workflow is a sequence of tasks that processes a set of data. You can think of workflow as the path that describes how tasks go from being undone to done. Scheduling, on the other hand, is the process of planning, controlling, and optimizing when a particular task should be done. Authoring Workflow in Apache Airflow. Airflow makes it easy to author workflows using python scripts. A Directed Acyclic Graph (DAG) represents a workflow in Airflow. It is a collection of tasks in a way that shows each task's relationships and dependencies. You can have as many DAGs as you want, and Airflow will execute them according to the task's relationships and dependencies. If task B depends on the successful execution of another task A, it means Airflow will run task A and only run task B after task A. This dependency is very easy to express in Airflow. For example, the above scenario is expressed as task_A >> task_B Also equivalent to task_A.set_downstream(task_B) That helps Airflow to know that it needs to execute task A before task B. Tasks can have far more complex relationships to each other than expressed above and Airflow figures out how and when to execute the tasks following their relationships and dependencies. Before we discuss the architecture of Airflow that makes scheduling, executing, and monitoring of workflow an easy thing, let us discuss the Breeze environment. Breeze Environment The breeze environment is the development environment for Airflow where you can run tests, build images, build documentations and so many other things. There are excellent documentation and video on Breeze environment. Please check them out. You enter the Breeze environment by running the ./breeze script. You can run all the commands mentioned here in the Breeze environment. Scheduler The scheduler is the component that monitors DAGs and triggers those tasks whose dependencies have been met. It watc

[Next page](<https://devfeed.tech/tags/scheduler.md?cursor=WyIyMDIwLTA4LTE3VDAwOjAwOjAwKzAwOjAwIiwgIjRhMDUwMTY0LTI1NWItNGU3ZS05NWY4LTIwZGM3NDAyNGJmYyJd>)