Apache Gossip is a system which can be used to build a distributed peer-to-peer network using the gossip protocol. Currently Apache Gossip is under its initial development stage where it supports basic data replication with CRDT, fault detection and multiple datacenter support. One of the requirement for this project is to support event based model to notify whenever the per-node data or shared-data get changed. Furthermore, the system is required support distributed locking mechanism in order achieve various tasks. For example dividing a task between nodes or electing a temporary leader. Therefore, the purpose of this project is to design and implement the above mentioned functionalities to Apache Gossip project.