<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>ztick — Push-Driven Job Scheduler in Zig</title><link>https://awf-project.ai/ztick/</link><description>Recent content on ztick — Push-Driven Job Scheduler in Zig</description><generator>Hugo</generator><language>en</language><copyright>Copyright (c) 2025-2026 AWF Project</copyright><lastBuildDate>Mon, 27 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://awf-project.ai/ztick/index.xml" rel="self" type="application/rss+xml"/><item><title>Page not found</title><link>https://awf-project.ai/ztick/404/</link><pubDate>Mon, 27 Apr 2026 00:00:00 +0000</pubDate><guid>https://awf-project.ai/ztick/404/</guid><description>&lt;p>Sorry, we can&amp;rsquo;t find the page you&amp;rsquo;re looking for.&lt;/p>
&lt;p>Use the navigation above or go back to the 

&lt;a class="link link--text" href="https://awf-project.ai/ztick/">homepage&lt;/a>.&lt;/p></description></item><item><title>0001: Hexagonal Architecture (Ports and Adapters)</title><link>https://awf-project.ai/ztick/docs/adr/0001-hexagonal-architecture-ports-and-adapters/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://awf-project.ai/ztick/docs/adr/0001-hexagonal-architecture-ports-and-adapters/</guid><description>&lt;p>&lt;strong>Status&lt;/strong>: Accepted
&lt;strong>Date&lt;/strong>: 2026-03-28
&lt;strong>Supersedes&lt;/strong>: N/A
&lt;strong>Superseded by&lt;/strong>: N/A&lt;/p>
&lt;h2 id="context">Context&lt;/h2>
&lt;p>The ztick scheduler needs a clean separation of concerns between business logic, adapters, and the interface layer to enable:&lt;/p></description></item><item><title>0002: Zig Language Choice</title><link>https://awf-project.ai/ztick/docs/adr/0002-zig-language-choice/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://awf-project.ai/ztick/docs/adr/0002-zig-language-choice/</guid><description>&lt;p>&lt;strong>Status&lt;/strong>: Accepted
&lt;strong>Date&lt;/strong>: 2026-03-28
&lt;strong>Supersedes&lt;/strong>: N/A
&lt;strong>Superseded by&lt;/strong>: N/A&lt;/p>
&lt;h2 id="context">Context&lt;/h2>
&lt;p>ztick is a time-based job scheduler that needs:&lt;/p>
&lt;ol>
&lt;li>&lt;strong>Fast compilation&lt;/strong> — Developers need tight feedback loops; CI must stay fast&lt;/li>
&lt;li>&lt;strong>Minimal dependencies&lt;/strong> — Reduce supply chain risk; audit the entire stack&lt;/li>
&lt;li>&lt;strong>Runtime simplicity&lt;/strong> — Single-threaded core with 3 helper threads; no need for complex async runtimes&lt;/li>
&lt;li>&lt;strong>Explicit memory control&lt;/strong> — Scheduler needs predictable, deterministic allocation&lt;/li>
&lt;li>&lt;strong>Small deployment&lt;/strong> — Binary should be self-contained, deployable to minimal environments&lt;/li>
&lt;/ol>
&lt;h2 id="candidates">Candidates&lt;/h2>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>Option&lt;/th>
 &lt;th>Pros&lt;/th>
 &lt;th>Cons&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>&lt;strong>Zig&lt;/strong>&lt;/td>
 &lt;td>Blazing fast compile (2-3 sec); stdlib only; explicit allocators; minimal binary&lt;/td>
 &lt;td>Less mature; smaller community; no garbage collection&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>Rust&lt;/strong>&lt;/td>
 &lt;td>Mature ecosystem; strong type system; large community&lt;/td>
 &lt;td>Slow compile (30+ sec for similar projects); heavy dependency graphs; overkill async ecosystem for this domain&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>C&lt;/strong>&lt;/td>
 &lt;td>Extremely fast; minimal binary; portable&lt;/td>
 &lt;td>No type safety; manual memory is error-prone; no modern tooling&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>Go&lt;/strong>&lt;/td>
 &lt;td>Fast compile; solid stdlib; deployment story&lt;/td>
 &lt;td>Garbage collection (unpredictable latency); heavier binary&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;h2 id="decision">Decision&lt;/h2>
&lt;p>&lt;strong>Build ztick in Zig&lt;/strong> (currently 0.15.2).&lt;/p></description></item><item><title>0003: System OpenSSL for Server-Side TLS</title><link>https://awf-project.ai/ztick/docs/adr/0003-system-openssl-for-server-side-tls/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://awf-project.ai/ztick/docs/adr/0003-system-openssl-for-server-side-tls/</guid><description>&lt;p>&lt;strong>Status&lt;/strong>: Accepted
&lt;strong>Date&lt;/strong>: 2026-03-30
&lt;strong>Supersedes&lt;/strong>: N/A
&lt;strong>Superseded by&lt;/strong>: N/A&lt;/p>
&lt;h2 id="context">Context&lt;/h2>
&lt;p>F006 adds TLS support to ztick&amp;rsquo;s TCP server (FR-001). This requires a server-side TLS implementation capable of accepting connections, performing handshakes, and wrapping streams.&lt;/p></description></item><item><title>0004: OpenTelemetry SDK Dependency for Instrumentation</title><link>https://awf-project.ai/ztick/docs/adr/0004-opentelemetry-sdk-dependency-for-instrumentation/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://awf-project.ai/ztick/docs/adr/0004-opentelemetry-sdk-dependency-for-instrumentation/</guid><description>&lt;p>&lt;strong>Status&lt;/strong>: Accepted
&lt;strong>Date&lt;/strong>: 2026-03-31
&lt;strong>Supersedes&lt;/strong>: N/A
&lt;strong>Superseded by&lt;/strong>: N/A&lt;/p>
&lt;h2 id="context">Context&lt;/h2>
&lt;p>F010 adds OpenTelemetry instrumentation to ztick (metrics, traces, structured logs). This requires OTLP/HTTP serialization, metric registry with atomic counters/gauges/histograms, span lifecycle management, and a dedicated exporter thread.&lt;/p></description></item><item><title>0005: AMQP Runner Design</title><link>https://awf-project.ai/ztick/docs/adr/0005-amqp-runner-design/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://awf-project.ai/ztick/docs/adr/0005-amqp-runner-design/</guid><description>&lt;p>&lt;strong>Status&lt;/strong>: Accepted
&lt;strong>Date&lt;/strong>: 2026-04-26
&lt;strong>Supersedes&lt;/strong>: N/A
&lt;strong>Superseded by&lt;/strong>: N/A&lt;/p>
&lt;h2 id="context">Context&lt;/h2>
&lt;p>F019 adds an AMQP 0-9-1 runner to ztick so that scheduled jobs can publish messages to a broker (e.g., RabbitMQ) as their execution action. Five independent design decisions shaped the implementation in &lt;code>src/infrastructure/amqp_runner.zig&lt;/code>:&lt;/p></description></item><item><title>0006: Redis Runner Design</title><link>https://awf-project.ai/ztick/docs/adr/0006-redis-runner-design/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://awf-project.ai/ztick/docs/adr/0006-redis-runner-design/</guid><description>&lt;p>&lt;strong>Status&lt;/strong>: Accepted
&lt;strong>Date&lt;/strong>: 2026-04-27
&lt;strong>Supersedes&lt;/strong>: N/A
&lt;strong>Superseded by&lt;/strong>: N/A&lt;/p>
&lt;h2 id="context">Context&lt;/h2>
&lt;p>F020 adds a Redis runner to ztick so that scheduled jobs can publish to a Redis pub/sub channel, push onto a list, or set a key as their execution action. Five independent design decisions shaped the implementation in &lt;code>src/infrastructure/runner/redis.zig&lt;/code> and the codec at &lt;code>src/infrastructure/redis/resp.zig&lt;/code>:&lt;/p></description></item><item><title>Building the Project</title><link>https://awf-project.ai/ztick/docs/development/building-the-project/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://awf-project.ai/ztick/docs/development/building-the-project/</guid><description>&lt;p>Guide to compiling, testing, and packaging ztick from source.&lt;/p>
&lt;h2 id="prerequisites">Prerequisites&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>Zig 0.15.2&lt;/strong> (

&lt;a class="link link--text" href="https://ziglang.org/download/" rel="external">download&lt;/a>)&lt;/li>
&lt;li>&lt;strong>libssl-dev&lt;/strong> (Debian/Ubuntu) or &lt;strong>openssl-devel&lt;/strong> (Fedora/RHEL) — required for TLS support&lt;/li>
&lt;li>&lt;strong>git&lt;/strong> (optional, for cloning the repository)&lt;/li>
&lt;/ul>
&lt;p>Zig package dependencies (fetched automatically by &lt;code>zig build&lt;/code>):&lt;/p></description></item><item><title>Configuration</title><link>https://awf-project.ai/ztick/docs/user-guide/configuration/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://awf-project.ai/ztick/docs/user-guide/configuration/</guid><description>&lt;p>This guide covers setting up and customizing ztick through TOML configuration files.&lt;/p>
&lt;h2 id="configuration-file-location">Configuration File Location&lt;/h2>
&lt;p>Specify the config file when starting ztick:&lt;/p></description></item><item><title>Configuration Reference</title><link>https://awf-project.ai/ztick/docs/reference/configuration-reference/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://awf-project.ai/ztick/docs/reference/configuration-reference/</guid><description>&lt;p>Complete specification of all TOML configuration options.&lt;/p>
&lt;p>ztick is configured via a TOML file passed with the &lt;code>-c&lt;/code> / &lt;code>--config&lt;/code> flag. All sections and keys are optional; omitted values use the defaults below.&lt;/p></description></item></channel></rss>