Skip to content

Roadmap

Mario edited this page Sep 23, 2026 · 1 revision

Roadmap & future vision

The v0.1 goal is a minimal, type-safe foundation for Java inter-service communication with predictable semantics and no magic.


Deliberate tradeoffs in v0.1

Vyra makes several deliberate tradeoffs to keep the v0.1 contract predictable:

  • Redis lists instead of Redis streams: we chose Lists for request worker queues to prioritize operational simplicity. Streams introduce consumer group offset management, dead-letter storage and ack overhead that are unnecessary for this phase of Vyra. For persistent event streaming, external tools or future Kafka transports are appropriate.
  • At-most-once events: because Vyra does not persist events, if a subscriber is offline, events are not retained. For persistent event streaming, external tools or future transports are appropriate.
  • Uniform network constraint: all nodes must use identical serializers. This avoids the runtime performance penalty and ambiguity of polyglot wire envelopes.

Planned enhancements

1. Additional transports

  • Apache Kafka transport: partitioned, persistent message streams for high-throughput enterprise event buses.
  • RabbitMQ transport: provides AMQP-based routing with explicit manual acknowledgements.

2. Advanced messaging patterns

  • Request fan-out: allow a request to be sent to multiple nodes and aggregate their responses.
  • Request cancellation: allow a caller to cancel a pending request and notify the remote
  • Delayed request delivery: allow scheduling requests to be delivered at a future time.
  • Offline request buffering: allow requests to be queued for delivery when a node is temporarily offline.

Contributing to Vyra

Vyra is an open-source project and accepts community contributions.

  • Read ARCHITECTURE.md before proposing architectural modifications.
  • Review Best practices for coding and design standards.
  • Check existing issues or submit a pull request with new transport or serializer implementations.

Vyra documentation

Getting started and messaging patterns

Transports and formats

Inside the framework

Reference

Clone this wiki locally