--
You received this message because you are subscribed to a topic in the Google Groups "Eclipse MicroProfile" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/microprofile/Em24P1UCcPE/unsubscribe.
To unsubscribe from this group and all its topics, send an email to microprofile...@googlegroups.com.
To post to this group, send email to microp...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/microprofile/514ce09e-565e-4f5d-ad02-84a2b5cada5e%40googlegroups.com.
only the R2DBC Client API that is based on (Flux|Mono)
1) when a user is reading a 'set' of things this has traditionally be done in terms of 'pulling' in batches at a speed driven by the client software plus an application cursor,but between (fixed) batches the database is not working - what does it mean to change to dynamic request(N) and slow the database down using back pressure if that databaseand its connections are shared?
2) when a user is writing a set of things too quickly for the database to keep up - the stream handling is already asynch before the DB client call so do a subset that repesents the overflow of the request(N) tickets just queue/block on submitting the write?
If we are attempting to do an update asynchronously but inside a transactionwhat do we do if that transaction ends at just the wrong time? For example'just' prior to the update being processed asynchronously?
If we register the asynch work on initiation as being part of the transaction,what approach do we take to prevent locks being held for 'too long' if asynchmeans some arbitrary time later'?
If request(N) ticketing prevents (db) server overload, how to we integrateinsight of this with scaling-out, if that has traditionly been stimulated by slow-responses,real memory or CPU stress?
--
You received this message because you are subscribed to a topic in the Google Groups "Eclipse MicroProfile" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/microprofile/Em24P1UCcPE/unsubscribe.
To unsubscribe from this group and all its topics, send an email to microprofile...@googlegroups.com.
To post to this group, send email to microp...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/microprofile/01538810-f298-4285-8692-77b2590302fa%40googlegroups.com.
Reactor is currently the only reactive library that exposes a Reactive Context (think of it as a ThreadLocal in the reactive world) that allows us to implement things like transactions. I.e. until other reactive libraries or APIs expose that kind of context, transactions will be hard (if not impossible) to implement and relational data access doesn't make too much sense without those.
+1. Keep them separate. Anyone remember the EJB spec? ;-)
Generally I agree with you here, but it's important to note that CDI was designed after JSF/JAX-RS/Servlet managed objects, in a way where explicit attention was paid from day 1 on keeping the CDI spec decoupled from any underlying technology.
JPA on the other hand, was not designed to ever be decoupled from JDBC, and trying to shoehorn in a JDBC alternative after JPA is well established seems very disruptive to the existing JPA users and implementors.
by keeping this separate from JPA we will have the freedom to succeed/fail/iterate independently of JPA.
This is a great idea and nicely fits into existing reactive efforts (operators and messaging).From what I know about R2DBC and ADBA is that R2DBC is the only fully reactive API, with support for backpressure. ADBA is only asynchronous, so it's useful, but not complete as it doesn§t support flow control.
That's basically the reason why Pivotal started R2DBC. Another drawback of ADBA is not just that it's a JDK effort and will require a certain version of JDK but that it's been talked about for years and there's still nothing available.I'm all in to explore R2DBC and even cooperate with Pitoval folks on its development while working on an extension or a spec to integrate it well into MP.Ondro
On Wednesday, January 9, 2019 at 3:56:10 PM UTC+1, Andy Guibert wrote:Hi all,Recently there have been efforts within MP to define a standard set of reactive APIs, namely MP Reactive Streams. When considering relational DB access, there are a number of solid options today, such as JPA, Hibernate, MyBatis, or jOOQ. However, all of these options are based on JDBC, which is a blocking API.When we look at _reactive_ relational DB access, there are two main efforts brewing:
- R2DBC (Reactive Relational DB Connectivity, open source, driven by Pivotal)
- ADBA (Async DB Access, internally designed, driven by Oracle)
Neither of these efforts are officially supported yet, but R2DBC looks like it's close. Additionally, it has the advantage over ADBA that it's a library, as opposed to ADBA which is proposed for inclusion in the JDK (and won't be included until JDK 13 at the absolute earliest).I think it would be interesting to experiment with combinations of R2DBC and MP Reactive Streams to see if we can come up with an API that allows applications to access relational DBs in a simple, extensible, and reactive way.Anyone else interested in collaborating on this, or have further thoughts/questions?Thanks,Andy Guibert
--
You received this message because you are subscribed to the Google Groups "Eclipse MicroProfile" group.
To unsubscribe from this group and stop receiving emails from it, send an email to microprofile...@googlegroups.com.
To post to this group, send email to microp...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/microprofile/7edb2a0b-f6ee-46fe-a88b-b5774bfbc001%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "Eclipse MicroProfile" group.
To unsubscribe from this group and stop receiving emails from it, send an email to microprofile...@googlegroups.com.
To post to this group, send email to microp...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/microprofile/5b873665-1f69-4c41-b5d9-5501c510cfc1%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
To view this discussion on the web visit https://groups.google.com/d/msgid/microprofile/CABY0rKMk8e_uz-LNR7qWFAmkro0mLk8m8baDuZqFsaSQBwJvew%40mail.gmail.com.