Clojure

In the last blog post, we processed the messages from IBM-MQ and relayed the information to the marketplace. In this blog post, we are going to focus on adding cron jobs to our existing infrastructure. The cron jobs pull the data from the marketplace, perform some transformation and send it to the Order Management System(OMS) via IBM-MQ. This blog post is a part 8 of the blog series Building an E-Commerce Marketplace Middleware in Clojure.

CONTINUE READING

In this seventh part of the blog series Building an E-Commerce Marketplace Middleware in Clojure, I am going to share how we captured a business operation from the client’s Order Management System(OMS) processed it in a marketplace. Ranging is an activity in the OMS that turn on the visibility of an item in a marketplace and make it available for sale. The reverse operation is Deranging, which unlist the item from the marketplace.

CONTINUE READING

The Order Management System(OMS) of our client exposes its operations in the form of messages via IBM-MQ. In this blog post, we are going to focus on setting up the infrastructure to receive and process these messages in our application. This blog post is a part 6 of the blog series Building an E-Commerce Marketplace Middleware in Clojure. Setting up IBM-MQ for Local Development We are going to leverage the IBM-MQ’s developers edition docker image for the local development.

CONTINUE READING

The back-office team of our client has an active slack based workflow for most of their systems. As this middleware is going to be another system that they need to keep track of, they asked us to send messages on Slack if the middleware encounters an error during its operation. In this blog post, I am going to share how we did it in Clojure using Timbre. This blog post is a part 5 of the blog series Building an E-Commerce Marketplace Middleware in Clojure.

CONTINUE READING

In the last blog post, we configured Timbre to log the events in the Console. In this blog post, we are going to add a database appender to persist the domain level events alone in Postgres using Toucan. This blog post is a part 4 of the blog series Building an E-Commerce Marketplace Middleware in Clojure. Adding Migration Script Let’s get started by adding the migration script to create the event table in the database.

CONTINUE READING

In the first two blog posts of the blog series Building an E-Commerce Marketplace Middleware in Clojure, we learnt how to bootstrap a Clojure project using Mount & Aero and how to configure database connection pooling & database migration along with reloaded workflow. We are going to continue setting up the infrastructure, and in this blog post, we are going to take up logging using Timbre. Timbre is a Clojure/Script logging library that enables to configure logging using a simple Clojure map.

CONTINUE READING

In the last blog post, we bootstrapped the Clojure project using Mount and Aero. We are going to continue from we left off and configure database connection pooling, migration & Reloaded Workflow in this blog post. This blog post is a part 2 of the blog series Building an E-Commerce Marketplace Middleware in Clojure. Configuring Hikari-CP Let’s get started by adding the hikari-cp, a Clojure wrapper to HikariCP, and the Postgres driver dependencies in the project.

CONTINUE READING

In this blog post, we are going to focus on bootstrapping the Clojure project using Mount & Aero and interacting with the application using the REPL. This blog post is a part 1 of the blog series Building an E-Commerce Marketplace Middleware in Clojure. Getting Started Let’s get started by creating a new app project using Leiningen and give it a project name wheel. lein new app wheel Reading Configuration To manage the application-level configuration, we are going to use Aero.

CONTINUE READING

We recently built an e-commerce marketplace middleware for a leading retail chain for consumer electronics & durables. The middleware enables them to sell their products on multiple e-commerce sites seamlessly. Through this blog post series, I am planning to share how we developed it in Clojure by building a minimal version of it. Problem Statement The retailer (our client) runs 134 stores across 32 cities in India. In addition to this, they sell their products in e-commerce marketplaces Tata-Cliq, Amazon and Flipkart.

CONTINUE READING

Hi, In the last blog post, we learned how to implement RESTful APIs using Compojure-API & Toucan. We are going to generalise that example by creating a little abstraction around it. The abstraction that we are going to create is going to help us in creating similar RESTful endpoints for any domain entities with less code. Let's dive in! The Book Entity To abstract what we did there, we need a few more specific implementation.

CONTINUE READING