Skip to content
Jay Ehsaniara edited this page Jul 8, 2025 · 3 revisions

Joblet Wiki

Welcome to the Joblet documentation! This is a high-performance distributed job execution system built in Go that provides secure remote command execution with comprehensive resource management and real-time monitoring capabilities.

πŸš€ Quick Start

πŸ“š Core Documentation

Architecture & Design

Development & Operations

API & Integration

πŸ› οΈ Advanced Topics

πŸ”§ Key Features

Feature Description
πŸŽ›οΈ Advanced Resource Management Linux Cgroups v2 with CPU, memory, and I/O bandwidth limiting
πŸ”’ Process Isolation PID, mount, IPC, and UTS namespaces per job
🌐 Host Networking Jobs use host network interface for maximum compatibility
πŸ“‘ Real-Time Operations Live log streaming and comprehensive monitoring
πŸ” Mutual TLS Security Certificate-based authentication with role-based access
⚑ High Performance gRPC communication with configurable limits

πŸ’‘ Use Cases

  • CI/CD Pipelines - Execute build and deployment jobs with resource limits
  • Batch Processing - Run data processing tasks with isolation
  • Development Environments - Provide isolated development containers
  • Microservice Testing - Test services in controlled environments
  • Educational Platforms - Safe code execution for learning environments

πŸ—οΈ Architecture Overview

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   RNX Client    │────│  Joblet Server  │────│   Job Process   β”‚
β”‚  (Admin/Viewer) β”‚    β”‚  (TLS + Auth)   β”‚    β”‚   (Linux Only)  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                               β”‚                        β”‚
                               β”‚                        β”‚
                       β”Œβ”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”      β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”
                       β”‚  State Store   β”‚      β”‚  Process Mgmt   β”‚
                       β”‚  (In-Memory)   β”‚      β”‚ (Namespaces +   β”‚
                       β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜      β”‚   Cgroups)      β”‚
                                               β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

🎯 Quick Example

# Start a simple job
rnx run echo "Hello, World!"

# Run with resource limits
rnx run --max-cpu=50 --max-memory=512 python3 script.py

# Monitor job status
rnx list
rnx log <job-id>

# Stop a job
rnx stop <job-id>

πŸ“– Getting Help

  • Issues: Report bugs and request features on GitHub Issues
  • Discussions: Ask questions in GitHub Discussions
  • Security: Report security issues privately to the maintainers

Note: This system requires Linux for full functionality. macOS is supported for RNX client and limited development use only.

Clone this wiki locally