didn’t realise it at that time: - Defining cell values in spreadsheets is similar to defining variables in imperative programming - Defining cell expressions in spreadsheets is similar to defining and operating on reactive types Reactive programming
of 2 - assign cell B2 with value of 3 - assign cell B3 with an expression that multiplies B1 value with B2 value - when value of either referenced component in the expression changes -> expression is re-evaluated automagically in B3
you have to be Responsive, Resilient, Elastic, and Message Driven. The last criteria in this list caused big movement into the asynchronous way of communications.
Spring, Pivotal Project Reactor, RxJava, MongoDB, Kafka, … 2017 Java The interfaces available in JDK9’s java.util.concurrent.Flow, are 1:1 semantically equivalent
at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:156) at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.request(FluxMapFuseable.java:156) at reactor.core.publisher.BlockingSingleSubscriber.onSubscribe(BlockingSingleSubscriber.java:49) at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:90) at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onSubscribe(FluxMapFuseable.java:90) at reactor.core.publisher.FluxJust.subscribe(FluxJust.java:70) at reactor.core.publisher.FluxMapFuseable.subscribe(FluxMapFuseable.java:63) at reactor.core.publisher.FluxMapFuseable.subscribe(FluxMapFuseable.java:63) at reactor.core.publisher.Flux.subscribe(Flux.java:6873) at mycode.test(MyTest.java:xx) Debugging
POOL Least Roundtrip Delay SNTP Request 2 SNTP Request 3 SNTP Request 4 SNTP Request 5 Statistical analysis Sort by clock offset + median NTP Time Best possible approximation of 5 . . .
POOL Least Roundtrip Delay SNTP Request 2 SNTP Request 3 SNTP Request 4 SNTP Request 5 Statistical analysis Sort by clock offset + median NTP Time Best possible approximation of 5 . . .