Skip to content

Commit c682b27

Browse files
committed
Update ROADMAP: Remove completed Phase 1 and renumber phases
- Removed Phase 1 section which contained Advanced Scheduling Patterns (completed in v1.0.0) - Renumbered all remaining phases: * Phase 2 (High Impact) → Phase 1 (Current priorities) * Phase 3 (Medium Impact) → Phase 2 * Phase 4 (Specialized) → Phase 3 * Phase 5 (Advanced Scaling) → Phase 4 - Updated implementation priority section to reflect new phase numbers - Phase 1 now focuses on Job Dependencies, Tracing, and Admin Dashboard
1 parent d80cd30 commit c682b27

File tree

1 file changed

+9
-69
lines changed

1 file changed

+9
-69
lines changed

ROADMAP.md

Lines changed: 9 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -2,64 +2,7 @@
22

33
This roadmap outlines planned features for Hammerwork, prioritized by impact level and implementation complexity. Features are organized into phases based on their value proposition to users and estimated development effort.
44

5-
## Phase 1: High Impact, Low-Medium Complexity ✅ COMPLETE
6-
*Essential features that provide significant value with reasonable implementation effort*
7-
8-
### ✅ Advanced Scheduling Patterns (COMPLETED v1.0.0)
9-
**Impact: Medium-High** | **Complexity: Medium** | **Priority: High**
10-
11-
**Status: ✅ Implemented** - Provides advanced retry strategies with exponential backoff, jitter, and custom scheduling patterns.
12-
13-
```rust
14-
// Exponential backoff with jitter (prevents thundering herd)
15-
let job = Job::new("retry_job".to_string(), payload)
16-
.with_exponential_backoff(
17-
Duration::from_secs(1), // base delay
18-
2.0, // multiplier
19-
Duration::from_minutes(10) // max delay
20-
);
21-
22-
// Fibonacci backoff for gentle growth
23-
let job = Job::new("scheduled_job".to_string(), payload)
24-
.with_fibonacci_backoff(
25-
Duration::from_secs(2),
26-
Some(Duration::from_minutes(5))
27-
);
28-
29-
// Linear backoff for steady increase
30-
let job = Job::new("linear_job".to_string(), payload)
31-
.with_linear_backoff(
32-
Duration::from_secs(5), // base delay
33-
Duration::from_secs(10), // increment
34-
Some(Duration::from_secs(60)) // max delay
35-
);
36-
37-
// Custom retry logic for business rules
38-
let job = Job::new("custom_job".to_string(), payload)
39-
.with_retry_strategy(RetryStrategy::custom(|attempt| {
40-
match attempt {
41-
1..=3 => Duration::from_secs(2), // Quick retries
42-
4..=6 => Duration::from_secs(30), // Medium delays
43-
_ => Duration::from_minutes(10), // Long delays
44-
}
45-
}));
46-
47-
// Worker-level default strategies
48-
let worker = Worker::new(queue, "api_tasks".to_string(), handler)
49-
.with_default_retry_strategy(RetryStrategy::exponential(
50-
Duration::from_secs(1), 2.0, Some(Duration::from_minutes(5))
51-
));
52-
```
53-
54-
**Key Features Implemented:**
55-
- ✅ Fixed, Linear, Exponential, Fibonacci, and Custom retry strategies
56-
- ✅ Additive and Multiplicative jitter types to prevent thundering herd
57-
- ✅ Job-level retry strategy overrides
58-
- ✅ Worker-level default retry strategies
59-
- ✅ Full backward compatibility with existing fixed delay system
60-
- ✅ Comprehensive test coverage and examples
61-
62-
## Phase 2: High Impact, Medium-High Complexity
5+
## Phase 1: High Impact, Medium-High Complexity
636
*Features that provide significant value but require more substantial implementation effort*
647

658
### 🔗 Job Dependencies & Workflows
@@ -120,7 +63,7 @@ let admin_server = AdminServer::new()
12063
// hammerwork-cli worker scale <queue> <count>
12164
```
12265

123-
## Phase 3: Medium Impact, Variable Complexity
66+
## Phase 2: Medium Impact, Variable Complexity
12467
*Valuable features for specific use cases or operational efficiency*
12568

12669
### 🗄️ Job Archiving & Retention
@@ -193,7 +136,7 @@ let event_stream = EventStream::new()
193136
.with_filtering(|event| event.priority >= JobPriority::High);
194137
```
195138

196-
## Phase 4: Specialized Features
139+
## Phase 3: Specialized Features
197140
*Features for specific enterprise or compliance requirements*
198141

199142
### 🔐 Job Encryption & PII Protection
@@ -237,7 +180,7 @@ let bridge = MessageBridge::new()
237180
.with_transform(|msg| Job::from_message(msg));
238181
```
239182

240-
## Phase 5: Advanced Scaling Features
183+
## Phase 4: Advanced Scaling Features
241184
*Complex features primarily for large-scale deployments*
242185

243186
### 🚀 Zero-downtime Deployments
@@ -283,26 +226,23 @@ let geo_config = GeoReplicationConfig::new()
283226

284227
Features are ordered within each phase by priority and should generally be implemented in the following sequence:
285228

286-
**Phase 1 (Foundation) ✅ COMPLETE**
287-
1. ✅ Advanced Scheduling Patterns (v1.0.0)
288-
289-
**Phase 2 (Advanced Features) - NEXT PRIORITIES**
229+
**Phase 1 (Advanced Features) - CURRENT PRIORITIES**
290230
1. Job Dependencies & Workflows
291231
2. Job Tracing & Correlation
292232
3. Admin Dashboard & CLI Tools
293233

294-
**Phase 3 (Operational Features)**
234+
**Phase 2 (Operational Features)**
295235
1. Job Archiving & Retention
296236
2. Job Testing & Simulation
297237
3. Dynamic Job Spawning
298238
4. Webhook & Event Streaming
299239

300-
**Phase 4 (Enterprise Features)**
240+
**Phase 3 (Enterprise Features)**
301241
1. Job Encryption & PII Protection
302242
2. Access Control & Auditing
303243
3. Message Queue Integration
304244

305-
**Phase 5 (Scaling Features)**
245+
**Phase 4 (Scaling Features)**
306246
1. Zero-downtime Deployments
307247
2. Queue Partitioning & Sharding
308248
3. Multi-region Support
@@ -313,7 +253,7 @@ We welcome contributions to any of these roadmap items! Please:
313253

314254
1. Open an issue to discuss the feature before implementation
315255
2. Review the [CONTRIBUTING.md](CONTRIBUTING.md) guidelines
316-
3. Consider starting with Phase 1 features for maximum impact
256+
3. Consider starting with Phase 1 (Advanced Features) for maximum impact
317257
4. Ensure comprehensive tests and documentation for new features
318258

319259
## Feedback

0 commit comments

Comments
 (0)