Skip to content
This repository was archived by the owner on Feb 4, 2026. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
b871e06
chore: prepare release 0.6.3
siy Dec 29, 2025
59c47ea
build: add jbct-maven-plugin 0.3.12 (disabled)
siy Dec 29, 2025
d549b98
feat: add production dashboard with real-time metrics
siy Dec 29, 2025
659d140
refactor: simplify Forge dashboard - remove D3 topology, compact design
siy Dec 30, 2025
ab6510b
build: bump Netty to 4.2.9.Final
siy Dec 30, 2025
4f957b6
refactor: use MultiThreadIoEventLoopGroup in http-server
siy Dec 30, 2025
289f7ac
refactor: use MultiThreadIoEventLoopGroup in node and forge
siy Dec 30, 2025
c8d0695
refactor: replace unwrap() with expect() in demo slices
siy Dec 30, 2025
80a8076
refactor: add SocketOptions, TlsConfig, ServerConfig to common
siy Dec 30, 2025
11ed174
refactor: add HTTP value objects to common
siy Dec 30, 2025
0624049
feat: add WebSocket abstractions to common
siy Dec 30, 2025
fe6a252
feat: add HttpServer to common module
siy Dec 30, 2025
c0fd7d7
refactor: delete http-server module, replaced by common/http
siy Dec 30, 2025
7d94146
fix: add request IDs and fix WebSocket state handling in HttpServer
siy Dec 30, 2025
7ccdf9b
docs: add Aspect Provider slice to infrastructure services plan
siy Dec 30, 2025
0d1761d
feat: production hardening with TLS, health endpoint, JBCT fixes
siy Dec 30, 2025
909c894
refactor: migrate to pragmatica-lite modules (messaging, dht, consens…
siy Dec 31, 2025
0d9f559
refactor: migrate to pragmatica-lite consensus module
siy Dec 31, 2025
308ac31
refactor: remove common module, use pragmatica-lite modules directly
siy Dec 31, 2025
074de61
fix: adapt to pragmatica-lite 0.9.2 API changes
siy Jan 1, 2026
39aee6b
fix: remove @Override from configure() methods
siy Jan 1, 2026
411fd0c
fix: remove @Override from test configure() methods
siy Jan 1, 2026
42f5019
fix: update order-demo versions to 0.6.3 and 0.9.2
siy Jan 1, 2026
0f26ac9
fix: update order-demo to new Verify API
siy Jan 1, 2026
8223199
refactor: centralize route registration, remove configure() methods
siy Jan 1, 2026
f294aad
docs: update documentation for 0.6.3 release
siy Jan 1, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 37 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,43 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [0.6.3] - 2026-01-01

### Added
- **Production dashboard** - Real-time cluster monitoring at `/dashboard` with Alpine.js and Chart.js
- **WebSocket metrics streaming** - 1-second broadcast of cluster metrics via `/ws/dashboard`
- **Alert management** - Configurable thresholds with in-memory alert tracking
- **Dashboard tabs** - Metrics, Slices, History, and Alerts views
- **New API endpoints** - `/slices/status`, `/invocation-metrics`, `/thresholds`, `/alerts`
- **TLS support** - Added `withTls()` to AetherNodeConfig, propagated to ManagementServer, HttpRouter, and cluster network
- **Enhanced /health endpoint** - Returns status (healthy/degraded/unhealthy), quorum, nodeCount, sliceCount
- **RingBuffer utility** - Thread-safe ring buffer with O(1) add and fixed memory footprint
- **Operational runbooks** - Added docs/runbooks/ with incident-response, scaling, troubleshooting, deployment guides

### Changed
- **pragmatica-lite 0.9.2** - Updated to latest version with breaking API changes
- **Consensus module** - Migrated to pragmatica-lite consensus module (removed 30+ duplicate files)
- **Package reorganization** - All consensus-related imports moved from `org.pragmatica.cluster.*` to `org.pragmatica.consensus.*`
- **TlsConfig/NodeAddress** - Now use pragmatica-lite `org.pragmatica.net.tcp` package
- **ID generation** - Switched from ULID to KSUID for correlation IDs (pragmatica-lite alignment)
- **Route registration** - Centralized in node assembly, removed `configure()` methods from components
- **Verify API** - Updated to new `Verify.ensure(value, predicate, pattern, cause)` signature
- **MetricsCollector** - Use RingBuffer instead of CopyOnWriteArrayList for historical metrics (7200 capacity)
- **HttpMethod.fromString()** - Returns `Option<HttpMethod>` instead of throwing
- **PathPattern.compile()** - Returns `Result<PathPattern>` instead of throwing
- **SliceManifest.readManifest()** - Returns `Result<Manifest>` instead of throwing
- **Main.parsePeerAddress()** - Returns `Optional<NodeInfo>` instead of throwing
- **DHTNode.create()** - Renamed to `DHTNode.dhtNode()` (JBCT naming convention)
- **SliceRegistry.create()** - Renamed to `SliceRegistry.sliceRegistry()` (JBCT naming convention)

### Removed
- **common module** - Replaced by pragmatica-lite modules (messaging, dht, consensus, utility, net)
- **Duplicate consensus files** - Now provided by pragmatica-lite consensus module
- **Duplicate network types** - Now use pragmatica-lite versions

### Fixed
- **LeaderManagerTest** - Updated to use deterministic node IDs for reliable test ordering

## [0.6.2] - 2025-12-29

### Added
Expand Down
12 changes: 5 additions & 7 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

## Project Overview

**Pragmatica Aether Distributed Runtime** (v0.6.2) is an AI-driven distributed runtime environment for Java that enables predictive scaling,
**Pragmatica Aether Distributed Runtime** (v0.6.3) is an AI-driven distributed runtime environment for Java that enables predictive scaling,
intelligent orchestration, and seamless multi-cloud deployment without requiring changes to business logic.

**See [docs/vision-and-goals.md](docs/vision-and-goals.md) for complete vision and design principles.**
Expand All @@ -24,13 +24,11 @@ intelligent orchestration, and seamless multi-cloud deployment without requiring
- **slice-api/** - Slice interface definitions (`Slice`, `SliceMethod`, `SliceRoute`)
- **slice/** - Slice management (`SliceStore`, `SliceState`, `Artifact` types, KV schema)
- **node/** - Runtime node implementation (`NodeDeploymentManager`, `ManagementServer`, metrics, controller)
- **cluster/** - Consensus layer (Rabia protocol, `KVStore`, `LeaderManager`)
- **common/** - Shared utilities and types
- **cluster/** - Cluster networking and KVStore (`NettyClusterNetwork`, `KVStore`)
- **example-slice/** - Reference implementation (`StringProcessorSlice`)
- **forge/** - Aether Forge: Standalone simulator CLI with visual dashboard for load/chaos testing
- **examples/order-demo/** - Complete order domain demo (5 slices)
- **cli/** - Command-line interface for cluster management
- **mcp/** - (deprecated) Model Context Protocol - replaced by direct agent API

### Module Dependencies

Expand Down Expand Up @@ -97,7 +95,7 @@ Maven-style coordinates for slices:

```java
// Format: groupId:artifactId:version[-qualifier]
Artifact.artifact("org.pragmatica-lite.aether:example-slice:0.6.2")
Artifact.artifact("org.pragmatica-lite.aether:example-slice:0.6.3")
```

**Components**:
Expand Down Expand Up @@ -305,7 +303,7 @@ public record Email(String value) {
return Verify.ensure(raw, Verify.Is::notNull)
.map(String::trim)
.map(String::toLowerCase)
.flatMap(Verify.ensureFn(INVALID_EMAIL, Verify.Is::matches, EMAIL_PATTERN))
.flatMap(v -> Verify.ensure(v, Verify.Is::matches, EMAIL_PATTERN, INVALID_EMAIL))
.map(Email::new);
}
}
Expand Down Expand Up @@ -796,7 +794,7 @@ cd example-slice && mvn test
- **SliceInvoker**: `node/src/main/java/org/pragmatica/aether/invoke/SliceInvoker.java`
- **ManagementServer**: `node/src/main/java/org/pragmatica/aether/api/ManagementServer.java`
- **AetherCli**: `cli/src/main/java/org/pragmatica/aether/cli/AetherCli.java`
- **Rabia Consensus**: `cluster/src/main/java/org/pragmatica/cluster/consensus/rabia/`
- **Rabia Consensus**: pragmatica-lite `consensus` module (`org.pragmatica.consensus.rabia`)
- **KVStore**: `cluster/src/main/java/org/pragmatica/cluster/state/kvstore/`
- **ForgeServer**: `forge/src/main/java/org/pragmatica/aether/forge/ForgeServer.java` - Aether Forge main entry
- **ForgeCluster**: `forge/src/main/java/org/pragmatica/aether/forge/ForgeCluster.java` - Forge cluster management
Expand Down
2 changes: 1 addition & 1 deletion cli/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
<parent>
<groupId>org.pragmatica-lite.aether</groupId>
<artifactId>aether</artifactId>
<version>0.6.2</version>
<version>0.6.3</version>
</parent>

<artifactId>cli</artifactId>
Expand Down
Loading