Skip to content

Conversation

@mivertowski
Copy link
Owner

Core infrastructure:

  • Add TypeErasedBatchKernel<K,I,O> wrapper for type-erased batch execution via JSON serde
  • Add TypeErasedRingKernel<K,M,R> wrapper for type-erased ring message dispatch
  • Add register_batch_typed() for zero-boilerplate factory registration with type inference
  • Add register_batch_metadata_from() and register_ring_metadata_from() helpers
  • Add execute_batch() convenience method on KernelRegistry
  • Export new types through prelude (BatchKernelDyn, RingKernelDyn, TypeErased* wrappers)

Ecosystem — real kernel execution replacing all placeholder stubs:

  • Axum: execute_kernel() now creates kernel instances from registry factories, serializes
    input JSON to bytes, calls execute_dyn(), deserializes output — with timeout support
    and proper error differentiation (batch vs ring vs not-found)
  • Tower: KernelService::execute() uses same factory-based dispatch pattern
  • gRPC: KernelGrpcServer::execute_kernel() with timeout and DEADLINE_EXCEEDED handling
  • Actix: KernelActor handler bridges async execute_dyn() via block_in_place
  • Ring kernels return informative errors guiding users to Ring protocol/gRPC streaming

Health & observability improvements:

  • Health endpoint aggregates registry status and error rate into component health
  • Prometheus metrics endpoint reports per-domain kernel counts, batch/ring breakdown,
    error rate, and request duration alongside existing counters

Domain crate registrations (all 14 crates, 106 kernels):

  • Migrate from register_metadata() to factory-based registration throughout
  • Batch kernels with BatchKernel<I,O> impl use register_batch_typed() for full execution
  • Batch kernels with GpuKernel-only use register_batch_metadata_from() for discovery
  • Ring kernels use register_ring_metadata_from() for metadata registration

All 895 tests pass. Zero clippy warnings.

https://claude.ai/code/session_01CwVtdXfd1urE8Ab6He77c5

… with real dispatch

Core infrastructure:
- Add TypeErasedBatchKernel<K,I,O> wrapper for type-erased batch execution via JSON serde
- Add TypeErasedRingKernel<K,M,R> wrapper for type-erased ring message dispatch
- Add register_batch_typed() for zero-boilerplate factory registration with type inference
- Add register_batch_metadata_from() and register_ring_metadata_from() helpers
- Add execute_batch() convenience method on KernelRegistry
- Export new types through prelude (BatchKernelDyn, RingKernelDyn, TypeErased* wrappers)

Ecosystem — real kernel execution replacing all placeholder stubs:
- Axum: execute_kernel() now creates kernel instances from registry factories, serializes
  input JSON to bytes, calls execute_dyn(), deserializes output — with timeout support
  and proper error differentiation (batch vs ring vs not-found)
- Tower: KernelService::execute() uses same factory-based dispatch pattern
- gRPC: KernelGrpcServer::execute_kernel() with timeout and DEADLINE_EXCEEDED handling
- Actix: KernelActor handler bridges async execute_dyn() via block_in_place
- Ring kernels return informative errors guiding users to Ring protocol/gRPC streaming

Health & observability improvements:
- Health endpoint aggregates registry status and error rate into component health
- Prometheus metrics endpoint reports per-domain kernel counts, batch/ring breakdown,
  error rate, and request duration alongside existing counters

Domain crate registrations (all 14 crates, 106 kernels):
- Migrate from register_metadata() to factory-based registration throughout
- Batch kernels with BatchKernel<I,O> impl use register_batch_typed() for full execution
- Batch kernels with GpuKernel-only use register_batch_metadata_from() for discovery
- Ring kernels use register_ring_metadata_from() for metadata registration

All 895 tests pass. Zero clippy warnings.

https://claude.ai/code/session_01CwVtdXfd1urE8Ab6He77c5
Update all mdBook docs and README to reflect v0.4.0 with RingKernel 0.4.2:
- Fix version references (0.2.0/0.1.0 → 0.4.0), crate count (18 → 19)
- Fix kernel counts (Risk: 4 → 5), remove RustCompute path dependency refs
- Document TypeErasedBatchKernel, factory registration, real ecosystem execution
- Add 0.3.0 and 0.4.0 changelog entries with migration guide
- Update architecture diagram, domain catalogue, and getting-started guides
- Replace mock/stub language with real execution details in ecosystem docs

https://claude.ai/code/session_01CwVtdXfd1urE8Ab6He77c5
…acade

- Facade: fix catalog counts (72→106), update MIN_RINGKERNEL_VERSION to 0.4.2,
  add register_all() convenience function
- Core errors: add http_status_code(), error_code(), is_client_error() methods;
  fix is_recoverable() classification
- Registry: add all_metadata(), search(), executable_kernel_ids(), is_executable()
- Axum: add CORS middleware, X-Request-ID response header propagation,
  min/max latency in Prometheus metrics
- gRPC: implement page_token pagination, propagate client request ID
- Actix: add timeout support from RequestMetadata
- Tower: implement token bucket rate limiter with burst capacity,
  add configurable timeout to KernelService
- ServiceMetrics: add min/max latency tracking

https://claude.ai/code/session_01CwVtdXfd1urE8Ab6He77c5
@mivertowski mivertowski merged commit 62c336b into main Feb 7, 2026
19 of 21 checks passed
@mivertowski mivertowski deleted the claude/production-readiness-improvements-iIfs1 branch February 7, 2026 11:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants