Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Mutiny a.k.a Uni / Multi #5707

Closed
10 tasks done
emmanuelbernard opened this issue Nov 22, 2019 · 5 comments
Closed
10 tasks done

Mutiny a.k.a Uni / Multi #5707

emmanuelbernard opened this issue Nov 22, 2019 · 5 comments
Assignees
Labels
kind/epic Large issue with links to sub-issues

Comments

@emmanuelbernard
Copy link
Member

emmanuelbernard commented Nov 22, 2019

Description

Deliver enough of the new reactive type strategy

Context

Uni/Multi (also named Mutiny) is a new reactive programming API that has been designed around a more fluent API.
Uni/Multi provides 2 types:

  • Uni for stream with 0..1 items. Uni does not implement Reactive Streams, but follow a subscription approach
  • Multi for stream with 0..n items. Multi implement Reactive Streams back-pressure protocol.

Uni/Multi innovates on 2 main aspects:

  • The API provides more guidance to the user, trying to avoid the 400 methods / class issues as well as the multi-overloading of some method (flatMap has around 16 variants)
  • The API also gives the possibility to convert from/to other reactive programming library and model such as Reactor, RX Java, CompletionStage

Current repo: https://github.com/smallrye/smallrye-uni-multi

Analysis

(links to analysis docs containing architecture design work, requirements gathering, etc)

Tasks

Deliver an early version of Uni/Multi - Clement is kinda working on it

  • Implement a new reactive programming library providing enough operator to replace RX Java 2
  • Add support for MP Context propagation
  • Rewrite the Multi support to avoid bringing RX Java to the classpath
  • Write documentation
    • Write rationale
    • Write use-case based documentation
    • Write "how to navigate in the API"

Migrate Reactive APis to Uni/Multi (Axle generation)

  • Extend the Axle code generator to generate Vert.x-based client using the Uni/Multi type
    Current code: https://github.com/smallrye/smallrye-reactive-utils/tree/master/vertx-axle-clients
  • All the reactive api from quarkus need to be migrated to the uni/multi model (or rather offer Uni / Multi as option)
    • Each module -> A task (This includes Mongo, Mailer, Neo4J...)
  • RestEasy uni/multi support
    • Need to extend resteasy to support the uni and multi types
@emmanuelbernard emmanuelbernard added the kind/epic Large issue with links to sub-issues label Nov 22, 2019
@emmanuelbernard
Copy link
Member Author

CC @cescoffier

@cescoffier cescoffier changed the title Uni / Multi Mutiny a.k.a Uni / Multi Dec 2, 2019
@paulrobinson
Copy link
Contributor

@emmanuelbernard is it @cescoffier that we need to lead this Epic?

@emmanuelbernard
Copy link
Member Author

yes

@cescoffier
Copy link
Member

The integration of mutiny in Quarkus has started, see #6416, it's definitely WIP and lots of work is still required.

@cescoffier
Copy link
Member

Integration is covered by #7097.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/epic Large issue with links to sub-issues
Projects
None yet
Development

No branches or pull requests

3 participants