diff --git a/springflux-5-reactive-client-ranjeetkaur/pom.xml b/springflux-5-reactive-client-ranjeetkaur/pom.xml
new file mode 100644
index 0000000000..bb832ae055
--- /dev/null
+++ b/springflux-5-reactive-client-ranjeetkaur/pom.xml
@@ -0,0 +1,70 @@
+
+
+ 4.0.0
+
+ com.springboot
+ sample
+ 0.0.1-SNAPSHOT
+ jar
+
+ client
+ SpringFlux Sample Client
+
+
+ org.springframework.boot
+ spring-boot-starter-parent
+ 2.0.3.RELEASE
+
+
+
+
+ UTF-8
+ UTF-8
+ 1.8
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-webflux
+
+
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+
+
+ repackage
+
+
+
+
+
+ --spring.profiles.active=dev
+
+
+
+
+
+
+
+
+ spring-releases
+ https://repo.spring.io/libs-release
+
+
+
+
+ spring-releases
+ https://repo.spring.io/libs-release
+
+
+
+
diff --git a/springflux-5-reactive-client-ranjeetkaur/src/main/java/com/springwebflux/sample/Client.java b/springflux-5-reactive-client-ranjeetkaur/src/main/java/com/springwebflux/sample/Client.java
new file mode 100644
index 0000000000..5846969803
--- /dev/null
+++ b/springflux-5-reactive-client-ranjeetkaur/src/main/java/com/springwebflux/sample/Client.java
@@ -0,0 +1,29 @@
+package com.springwebflux.sample;
+
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.scheduling.annotation.EnableAsync;
+import org.springframework.web.reactive.function.client.WebClient;
+
+/**
+ * @author ranjeetkaur
+ *
+ */
+@SpringBootApplication(scanBasePackages = "com.springwebflux.*")
+@EnableAsync
+public class Client {
+
+ public static void main(String[] args) throws InterruptedException {
+
+ WebClient webClient = WebClient.builder()
+ .baseUrl("http://localhost:8090")
+ .build();
+
+ webClient.get()
+ .uri("/v1/dice")
+ .retrieve()
+ .bodyToFlux(Integer.class)
+ .log();
+
+ Thread.sleep(10000);
+ }
+}
\ No newline at end of file
diff --git a/springflux-5-reactive-client-ranjeetkaur/src/main/resources/application.properties b/springflux-5-reactive-client-ranjeetkaur/src/main/resources/application.properties
new file mode 100644
index 0000000000..f667a68bc2
--- /dev/null
+++ b/springflux-5-reactive-client-ranjeetkaur/src/main/resources/application.properties
@@ -0,0 +1 @@
+server.port =8091
\ No newline at end of file
diff --git a/springflux-5-reactive-ranjeetkaur/pom.xml b/springflux-5-reactive-ranjeetkaur/pom.xml
new file mode 100644
index 0000000000..3fe4156360
--- /dev/null
+++ b/springflux-5-reactive-ranjeetkaur/pom.xml
@@ -0,0 +1,76 @@
+
+
+ 4.0.0
+
+ com.springboot
+ sample
+ 0.0.1-SNAPSHOT
+ jar
+
+ webflux-server
+ SpringFlux Sample Server
+
+
+ org.springframework.boot
+ spring-boot-starter-parent
+ 2.0.3.RELEASE
+
+
+
+
+ UTF-8
+ UTF-8
+ 1.8
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-webflux
+
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+
+
+ repackage
+
+
+
+
+
+ --spring.profiles.active=dev
+
+
+
+
+
+
+
+
+ spring-releases
+ https://repo.spring.io/libs-release
+
+
+
+
+ spring-releases
+ https://repo.spring.io/libs-release
+
+
+
+
diff --git a/springflux-5-reactive-ranjeetkaur/src/main/java/com/springwebflux/controller/Controller.java b/springflux-5-reactive-ranjeetkaur/src/main/java/com/springwebflux/controller/Controller.java
new file mode 100644
index 0000000000..fa3070640e
--- /dev/null
+++ b/springflux-5-reactive-ranjeetkaur/src/main/java/com/springwebflux/controller/Controller.java
@@ -0,0 +1,28 @@
+package com.springwebflux.controller;
+
+import java.time.Duration;
+import java.util.Random;
+
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import reactor.core.publisher.Flux;
+
+/**
+ * @author ranjeetkaur
+ *
+ */
+@RestController
+@RequestMapping(value = "/v1")
+public class Controller {
+
+ private static Random random = new Random();
+
+ @GetMapping("/dice")
+ public Flux rollDice() {
+ return Flux.interval(Duration.ofSeconds(1))
+ .map(pulse -> random.nextInt(5) + 1);
+ }
+
+}
diff --git a/springflux-5-reactive-ranjeetkaur/src/main/java/com/springwebflux/sample/Application.java b/springflux-5-reactive-ranjeetkaur/src/main/java/com/springwebflux/sample/Application.java
new file mode 100644
index 0000000000..1641885f41
--- /dev/null
+++ b/springflux-5-reactive-ranjeetkaur/src/main/java/com/springwebflux/sample/Application.java
@@ -0,0 +1,17 @@
+package com.springwebflux.sample;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+/**
+ * @author ranjeetkaur
+ *
+ */
+@SpringBootApplication(scanBasePackages = "com.springwebflux.*")
+public class Application {
+
+ public static void main(String[] args) {
+
+ SpringApplication.run(Application.class, args);
+ }
+}
\ No newline at end of file
diff --git a/springflux-5-reactive-ranjeetkaur/src/main/resources/application.properties b/springflux-5-reactive-ranjeetkaur/src/main/resources/application.properties
new file mode 100644
index 0000000000..91f7491179
--- /dev/null
+++ b/springflux-5-reactive-ranjeetkaur/src/main/resources/application.properties
@@ -0,0 +1 @@
+server.port = 8090
\ No newline at end of file
diff --git a/springflux-5-reactive-ranjeetkaur/src/test/java/com/springwebflux/sample/ApplicationTests.java b/springflux-5-reactive-ranjeetkaur/src/test/java/com/springwebflux/sample/ApplicationTests.java
new file mode 100644
index 0000000000..ce09d9ae37
--- /dev/null
+++ b/springflux-5-reactive-ranjeetkaur/src/test/java/com/springwebflux/sample/ApplicationTests.java
@@ -0,0 +1,36 @@
+package com.springwebflux.sample;
+
+import java.time.Duration;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+import org.springframework.test.web.reactive.server.WebTestClient;
+
+@RunWith(SpringRunner.class)
+@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
+public class ApplicationTests {
+
+ @Autowired
+ private WebTestClient webTestClient;
+
+ @Before
+ private void setUp() {
+ webTestClient = webTestClient.mutate()
+ .responseTimeout(Duration.ofMillis(10000))
+ .build();
+ }
+
+ @Test
+ public void rollDice() throws InterruptedException {
+ webTestClient.get()
+ .uri("/v1/dice")
+ .exchange()
+ .expectStatus()
+ .isOk()
+ .expectBodyList(Integer.class);
+ }
+}
\ No newline at end of file