diff --git a/README.md b/README.md
index 4ae31dcedbb6983e808ff8828de1949e06cc3415..ea2f33df45727727c00232bab3ff836db95b53c5 100644
--- a/README.md
+++ b/README.md
@@ -3,12 +3,13 @@
 This microservices branch was initially derived from [AngularJS version](https://github.com/spring-petclinic/spring-petclinic-angular1) to demonstrate how to split sample Spring application into [microservices](http://www.martinfowler.com/articles/microservices.html). To achieve that goal we used [Spring Cloud Netflix](https://github.com/spring-cloud/spring-cloud-netflix) technology stack.
 
 ## Starting services locally
-Every microservice is a Spring Boot application and can be started locally using IDE or `mvn spring-boot:run` command. Please note that supporting services (Config and Discovery Server) must be started before any other application (Customers, Vets, Visits and API).
+Every microservice is a Spring Boot application and can be started locally using IDE or `mvn spring-boot:run` command. Please note that supporting services (Config and Discovery Server) must be started before any other application (Customers, Vets, Visits and API). Tracing server startup is optional.
 If everything goes well, you can access the following services at given location:
 * Discovery Server - http://localhost:8761
 * Config Server - http://localhost:8888
 * AngularJS frontend (API Gateway) - http://localhost:8080
 * Customers, Vets and Visits Services - random port, check Eureka Dashboard 
+* Tracing Server (Zipkin) - http://localhost:9411
 
 ## Understanding the Spring Petclinic application with a few diagrams
 <a href="https://speakerdeck.com/michaelisvy/spring-petclinic-sample-application">See the presentation here</a>
diff --git a/pom.xml b/pom.xml
index 74a906816351a8c55fb0f64016f80e228b65bd7e..b1315cd9a87546bb77bbbd2d81e9f1d4895ce57e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -23,6 +23,7 @@
         <module>spring-petclinic-discovery-server</module>
         <module>spring-petclinic-api-gateway</module>
         <module>spring-petclinic-monitoring</module>
+        <module>spring-petclinic-tracing-server</module>
     </modules>
 
     <properties>
diff --git a/spring-petclinic-customers-service/pom.xml b/spring-petclinic-customers-service/pom.xml
index 59c37cf466b7fb10c8d01be8ecb92e5627357b66..f20c3a664a923dd1f73ca74c48848f6176df8e7b 100644
--- a/spring-petclinic-customers-service/pom.xml
+++ b/spring-petclinic-customers-service/pom.xml
@@ -56,6 +56,10 @@
             <groupId>org.springframework.cloud</groupId>
             <artifactId>spring-cloud-starter-sleuth</artifactId>
         </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-sleuth-zipkin</artifactId>
+        </dependency>
 
         <!-- Third parties -->
         <dependency>
diff --git a/spring-petclinic-tracing-server/pom.xml b/spring-petclinic-tracing-server/pom.xml
new file mode 100644
index 0000000000000000000000000000000000000000..ff438aaf57e26ccf2b85a75b28a5396d6e9c6a75
--- /dev/null
+++ b/spring-petclinic-tracing-server/pom.xml
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <groupId>org.springframework.samples.petclinic.visits</groupId>
+    <artifactId>spring-petclinic-zipkin-server</artifactId>
+    <version>1.4.2</version>
+    <packaging>jar</packaging>
+
+    <name>spring-petclinic-tracing-server</name>
+    <description>Zipkin server with UI</description>
+
+    <parent>
+        <groupId>org.springframework.samples</groupId>
+        <artifactId>spring-petclinic-microservices</artifactId>
+        <version>1.4.2</version>
+    </parent>
+
+    <dependencies>
+        <!-- Spring Boot -->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-config</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+
+        <!-- Spring Cloud -->
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-eureka</artifactId>
+        </dependency>
+
+        <!-- Third-parties -->
+        <dependency>
+            <groupId>io.zipkin.java</groupId>
+            <artifactId>zipkin-server</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.zipkin.java</groupId>
+            <artifactId>zipkin-autoconfigure-ui</artifactId>
+            <scope>runtime</scope>
+        </dependency>
+
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>
diff --git a/spring-petclinic-tracing-server/src/main/java/org/springframework/samples/petclinic/tracing/ZipkinServer.java b/spring-petclinic-tracing-server/src/main/java/org/springframework/samples/petclinic/tracing/ZipkinServer.java
new file mode 100644
index 0000000000000000000000000000000000000000..06c3a409358f7bb8324f2b880bff3271a3e83773
--- /dev/null
+++ b/spring-petclinic-tracing-server/src/main/java/org/springframework/samples/petclinic/tracing/ZipkinServer.java
@@ -0,0 +1,19 @@
+package org.springframework.samples.petclinic.tracing;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
+import zipkin.server.EnableZipkinServer;
+
+/**
+ * @author Antoine Rey
+ */
+@EnableDiscoveryClient
+@SpringBootApplication
+@EnableZipkinServer
+public class ZipkinServer {
+
+    public static void main(String[] args) {
+        SpringApplication.run(ZipkinServer.class, args);
+    }
+}
diff --git a/spring-petclinic-tracing-server/src/main/resources/bootstrap.yml b/spring-petclinic-tracing-server/src/main/resources/bootstrap.yml
new file mode 100644
index 0000000000000000000000000000000000000000..abdd9f5cdcbe12ab6d05b2af39f2dd6402f2feaa
--- /dev/null
+++ b/spring-petclinic-tracing-server/src/main/resources/bootstrap.yml
@@ -0,0 +1,6 @@
+spring:
+  cloud:
+    config:
+      uri: http://localhost:8888
+  application:
+    name: tracing-server
diff --git a/spring-petclinic-visits-service/pom.xml b/spring-petclinic-visits-service/pom.xml
index f895ad1946d9f3079fd67d6a1bf88d88e55cd65a..85e42c379f30cdeba160a02bac723798603d762b 100644
--- a/spring-petclinic-visits-service/pom.xml
+++ b/spring-petclinic-visits-service/pom.xml
@@ -50,6 +50,10 @@
             <groupId>org.springframework.cloud</groupId>
             <artifactId>spring-cloud-starter-sleuth</artifactId>
         </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-sleuth-zipkin</artifactId>
+        </dependency>
 
         <!-- Third parties -->
 		<dependency>