IN/Clojure 2020

India's annual Clojure and ClojureScript conference. 14th-15th Feb, 2020. Pune, MH, IN.

Akaash Patnaik


Composable Data Pipelines for not-so-Big Data

Submitted Nov 10, 2019

The session aims to accomplish two primary objectives:
1. Demonstrate how plain ol’ Clojure and its features provide reasonably powerful alternatives to distributed computation frameworks.
2. Present an Experience Report of a team using Clojure in production for the first time.

At numberz, we help businesses automate their payments collection processes. This requires us to pull data from our customers’ ERPs into our systems. The size & heterogeneity of these data-sets pose various technical challenges which were slowing down our customer onboarding process and introducing a significant bottleneck in the customer lifecycle.

The talk will cover how we solved this business problem using Clojure. We will walk through the different iterations of the solution, the challenges faced at each stage, and the specific features of Clojure that helped us overcome those challenges. The talk will also cover some of our experiences working with Clojure in production, for the first time, and is aimed at people toying with the idea of introducing Clojure into their work projects.


  • Introduction
  • Context - numberz & what it does
  • Business problem
  • Iterations - improving the solution
    • Naive implementation using threading macros and core.async
    • DAG-based implementation
    • DSL to decalaratively express DAGs and compose transformations together
  • Challenges faced
  • Conclusion


Basic familiarity with Clojure

Speaker bio

I’m a web developer, based out of Bangalore, India. I currently work at numberz, a financial technology startup where I lead the technology team. Most of my decade-long career in software engineering, has been in the financial technology domain, where I’ve helped build systems for invoicing, payments processing, collections automation, etc.

My interest in functional programming & music led me to hacking on Overtone a few years ago. A few hours into it, I was hooked and this was my gateway into the world of Clojure. Having been something of a hobbyist in Clojure for a few years now, I have lately been involved in introducing Clojure at work, for a business-critical project. It has been a hugely insightful experience and has further reinforced my belief in the benefits of using functional programming and Clojure in real-world business applications.




{{ gettext('Login to leave a comment') }}

{{ gettext('Post a comment…') }}
{{ gettext('New comment') }}
{{ formTitle }}

{{ errorMsg }}

{{ gettext('No comments posted yet') }}