Server Infrastructure Modernization #81

Open
opened 2026-03-15 04:13:02 +00:00 by freemo · 0 comments
Owner

Background and Context

The Aethyr server's infrastructure layer needs modernization to support the architectural
goals described in the specification. Three foundational capabilities are missing:

  1. Lifecycle Hook System — The specification (§ Lifecycle Hook System) describes a
    decoupled event-driven hook mechanism (on_boot, on_shutdown, on_tick, on_login,
    etc.) that other subsystems depend on. Event sourcing integration, terminal UI, and
    command dispatch all require lifecycle hooks for initialization, cleanup, and state
    management. No implementation exists today.

  2. EventMachine Network Migration — The specification and CONTRIBUTING.md describe
    EventMachine as the target network architecture. The current server loop uses legacy
    IO.select multiplexing. Completing this migration enables non-blocking I/O, timer
    management, and a reactor pattern that the terminal UI framework depends on.

  3. YARD API Documentation — The specification lists YARD as the documentation tool,
    but the codebase currently uses RDoc. Migrating to YARD enables richer documentation
    with @tag annotations, cross-references, and better HTML output.

Expected Behavior

All three capabilities are fully implemented, tested, and integrated. The server boots
with lifecycle hooks active, runs on EventMachine's reactor, and generates YARD
documentation.

Acceptance Criteria

  • Lifecycle hook system is implemented with all hooks from the specification
  • Server main loop runs on EventMachine reactor pattern
  • All API documentation uses YARD format
  • All child Epics are completed

Subtasks

  • Complete Epic: Lifecycle Hook System
  • Complete Epic: EventMachine Network Migration
  • Complete Epic: YARD API Documentation Migration

Definition of Done

This Legendary is complete when all child Epics are closed and their acceptance
criteria are satisfied.

## Background and Context The Aethyr server's infrastructure layer needs modernization to support the architectural goals described in the specification. Three foundational capabilities are missing: 1. **Lifecycle Hook System** — The specification (§ Lifecycle Hook System) describes a decoupled event-driven hook mechanism (`on_boot`, `on_shutdown`, `on_tick`, `on_login`, etc.) that other subsystems depend on. Event sourcing integration, terminal UI, and command dispatch all require lifecycle hooks for initialization, cleanup, and state management. No implementation exists today. 2. **EventMachine Network Migration** — The specification and CONTRIBUTING.md describe EventMachine as the target network architecture. The current server loop uses legacy `IO.select` multiplexing. Completing this migration enables non-blocking I/O, timer management, and a reactor pattern that the terminal UI framework depends on. 3. **YARD API Documentation** — The specification lists YARD as the documentation tool, but the codebase currently uses RDoc. Migrating to YARD enables richer documentation with `@tag` annotations, cross-references, and better HTML output. ## Expected Behavior All three capabilities are fully implemented, tested, and integrated. The server boots with lifecycle hooks active, runs on EventMachine's reactor, and generates YARD documentation. ## Acceptance Criteria - Lifecycle hook system is implemented with all hooks from the specification - Server main loop runs on EventMachine reactor pattern - All API documentation uses YARD format - All child Epics are completed ## Subtasks - [ ] Complete Epic: Lifecycle Hook System - [ ] Complete Epic: EventMachine Network Migration - [ ] Complete Epic: YARD API Documentation Migration ## Definition of Done This Legendary is complete when all child Epics are closed and their acceptance criteria are satisfied.
freemo self-assigned this 2026-03-15 04:25:24 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Reference: aethyr/Aethyr#81
No description provided.