diff --git a/voltha/voltha-kafka-dump/Dockerfile b/voltha/voltha-kafka-dump/Dockerfile
new file mode 100755
index 0000000..6ddf464
--- /dev/null
+++ b/voltha/voltha-kafka-dump/Dockerfile
@@ -0,0 +1,44 @@
+# Copyright 2019-present the original author or authors.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+FROM confluentinc/cp-kafkacat:4.1.2
+
+# version of voltha-protos to use in this container
+
+ARG VOLTHA_PROTOS_VERSION=unknown
+
+SHELL ["/bin/bash", "-o", "pipefail", "-c"]
+
+RUN apt-get update && \
+    apt-get install -y unzip=6.0-21+deb9u2 curl=7.52.1-5+deb9u9 git=1:2.11.0-3+deb9u4 libatomic1=6.3.0-18+deb9u1 ca-certificates=20161130+nmu1+deb9u1 --no-install-recommends && \
+    apt-get clean && \
+    rm -rf /var/lib/apt/lists/*
+
+# Install protoc
+RUN PROTOC_VERSION="3.7.0" && \
+    PROTOC_SHA256SUM="a1b8ed22d6dc53c5b8680a6f1760a305b33ef471bece482e92728f00ba2a2969" && \
+    curl -L -o /tmp/protoc-$PROTOC_VERSION-linux-x86_64.zip https://github.com/google/protobuf/releases/download/v$PROTOC_VERSION/protoc-$PROTOC_VERSION-linux-x86_64.zip && \
+    echo "$PROTOC_SHA256SUM  /tmp/protoc-$PROTOC_VERSION-linux-x86_64.zip" | sha256sum -c - && \
+    unzip /tmp/protoc-$PROTOC_VERSION-linux-x86_64.zip -d /tmp/protoc3 && \
+    mv /tmp/protoc3/bin/* /usr/local/bin/ && \
+    mv /tmp/protoc3/include/* /usr/local/include/ && \
+    chmod -R a+rx /usr/local/bin/* && \
+    chmod -R a+rX /usr/local/include/
+
+WORKDIR /opt/voltha-kafka-dump
+
+# Install voltha-protos
+RUN git clone -b $VOLTHA_PROTOS_VERSION --single-branch https://github.com/opencord/voltha-protos.git
+
+COPY voltha-dump-events.sh ./
diff --git a/voltha/voltha-kafka-dump/Makefile b/voltha/voltha-kafka-dump/Makefile
new file mode 100644
index 0000000..95ff9bc
--- /dev/null
+++ b/voltha/voltha-kafka-dump/Makefile
@@ -0,0 +1,93 @@
+# Copyright 2019-present the original author or authors.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+# set default shell
+SHELL = bash -e -o pipefail
+
+# Variables
+VERSION                    ?= $(shell cat ../../VERSION)
+
+VOLTHA_PROTOS_VERSION      ?= v2.1.2
+
+DOCKER_LABEL_VCS_DIRTY     = false
+ifneq ($(shell git ls-files --others --modified --exclude-standard 2>/dev/null | wc -l | sed -e 's/ //g'),0)
+    DOCKER_LABEL_VCS_DIRTY = true
+endif
+## Docker related
+DOCKER_EXTRA_ARGS          ?=
+DOCKER_REGISTRY            ?=
+DOCKER_REPOSITORY          ?=
+DOCKER_TAG                 ?= ${VERSION}$(shell [[ ${DOCKER_LABEL_VCS_DIRTY} == "true" ]] && echo "-dirty" || true)
+IMAGENAME                  := ${DOCKER_REGISTRY}${DOCKER_REPOSITORY}voltha-kafka-dump
+
+## Docker labels. Only set ref and commit date if committed
+DOCKER_LABEL_VCS_URL       ?= $(shell git remote get-url $(shell git remote))
+DOCKER_LABEL_VCS_REF       = $(shell git rev-parse HEAD)
+DOCKER_LABEL_BUILD_DATE    ?= $(shell date -u "+%Y-%m-%dT%H:%M:%SZ")
+DOCKER_LABEL_COMMIT_DATE   = $(shell git show -s --format=%cd --date=iso-strict HEAD)
+
+DOCKER_BUILD_ARGS ?= \
+	${DOCKER_EXTRA_ARGS} \
+	--build-arg org_label_schema_version="${VERSION}" \
+	--build-arg org_label_schema_vcs_url="${DOCKER_LABEL_VCS_URL}" \
+	--build-arg org_label_schema_vcs_ref="${DOCKER_LABEL_VCS_REF}" \
+	--build-arg org_label_schema_build_date="${DOCKER_LABEL_BUILD_DATE}" \
+	--build-arg org_opencord_vcs_commit_date="${DOCKER_LABEL_COMMIT_DATE}" \
+	--build-arg org_opencord_vcs_dirty="${DOCKER_LABEL_VCS_DIRTY}" \
+        --build-arg VOLTHA_PROTOS_VERSION="${VOLTHA_PROTOS_VERSION}"
+
+# This should to be the first and default target in this Makefile
+help:
+	@echo "Usage: make [<target>]"
+	@echo "where available targets are:"
+	@echo
+	@echo "build                : Build the docker images."
+	@echo "                         - If this is the first time you are building, choose 'make build' option."
+	@echo "clean                : Remove files created by the build and tests"
+	@echo "distclean            : Remove venv directory"
+	@echo "docker-push          : Push the docker images to an external repository"
+	@echo "lint-dockerfile      : Perform static analysis on Dockerfiles"
+	@echo "lint                 : Shorthand for lint-dockerfile"
+	@echo
+
+## Docker targets
+
+build: docker-build
+
+docker-build: voltha-kafka-dump
+
+voltha-kafka-dump:
+	docker build $(DOCKER_BUILD_ARGS) -t ${IMAGENAME}:${DOCKER_TAG} -t ${IMAGENAME}:latest -f Dockerfile .
+
+docker-push:
+	docker push ${IMAGENAME}:${DOCKER_TAG}
+
+## lint and unit tests
+
+PATH:=$(GOPATH)/bin:$(PATH)
+HADOLINT=$(shell PATH=$(GOPATH):$(PATH) which hadolint)
+lint-dockerfile:
+ifeq (,$(shell PATH=$(GOPATH):$(PATH) which hadolint))
+	mkdir -p $(GOPATH)/bin
+	curl -o $(GOPATH)/bin/hadolint -sNSL https://github.com/hadolint/hadolint/releases/download/v1.17.1/hadolint-$(shell uname -s)-$(shell uname -m)
+	chmod 755 $(GOPATH)/bin/hadolint
+endif
+	@echo "Running Dockerfile lint check ..."
+	@hadolint $$(find . -name "Dockerfile")
+	@echo "Dockerfile lint check OK"
+
+lint: lint-dockerfile
+
+# end file
diff --git a/voltha/voltha-kafka-dump/voltha-dump-events.sh b/voltha/voltha-kafka-dump/voltha-dump-events.sh
new file mode 100755
index 0000000..906d4bb
--- /dev/null
+++ b/voltha/voltha-kafka-dump/voltha-dump-events.sh
@@ -0,0 +1,24 @@
+#!/usr/bin/env bash
+
+# Copyright 2019-present Open Networking Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# If the --binary flag is used then binary output will be printed.
+# Otherwise, human-readable output is printed.
+
+if [[ $* == *--binary* ]]; then
+  kafkacat -u -C -b voltha-kafka.voltha -t voltha.events -D "" -o beginning -e
+else
+  kafkacat -u -C -b voltha-kafka.voltha -t voltha.events -D "" -o beginning -e | protoc --decode=voltha.Event /opt/voltha-kafka-dump/voltha-protos/protos/voltha_protos/events.proto -I /opt/voltha-kafka-dump/voltha-protos/protos
+fi
