a dynamic, general-purpose language, combining the approachability and interactive development of a scripting language with an efficient and robust infrastructure for multithreaded programming. Clojure is programming Clojure is functional programming, all is function you can see the basic pattren : (fn param-1..param-n)(fn (fn-1 (fn-2 param-2–1) param-1–1)) Stop pulling your hair out while understanding existing Clojure project, here four tips that I can share with you while right now I also still suffering understanding Clojure code Reading function by function starts from the last child function to the first parent so value from will be collected by and store to :data , than protobuf will build user-batch, then from protobuf value get-user-profile for publish-topic this technique will be pain less then read from the first parent then go to the last child 2. Reading nested hash map also start from the last child of key How to get follower of his k account: faceboo Java Object.getData().getProfile().getSocialMedia().get(0).getFollower() Clojure (:follower (first (:social-media (:profile (:data object))))) 3. Use lein repl if you stuck something you may know debuging clojure on itellijIDEA is worst, not fully make you happier, for example 1 (let [atc-products2 (for [cart carts] (get-product (:product-id cart)))]3 5 (println "HERE PRODUCTS" atc-products)) 4 (response **atc-products** ) console>> HERE PRODUCTS ({:product-id 123 :product-name "Sepatu"} {:product-id 456 :product-name "Sandal"}) Let say i put a breakpoint at , you will be wondering in debugger panel atc-products will be shown as null, but you will see some values of atc-products in the console after println. line 4 with lein repl you can execute parentheses by parentheses, or even function by function if you got an error you can fix instantly and then just add :reload (require #[namespace :as alias] :reload) 4. Use rainbow parentheses plugin help your eye catch ton of parentheses in clojure with atom https://github.com/johngeorgewright/atom-rainbow apm install johngeorgewright/atom-rainbow Thanks!