Fiscal Event Aggregator

Overview

Fiscal Event Aggregator is a java standalone application, which will be running as Cron Job to aggregate the fiscal event data from Druid data store to Postgres DB.

Version History

Current Version : 1.0.0

Prerequisites

Before you proceed with the configuration, make sure the following pre-requisites are met

  1. Java 8

  2. Druid DB & Postgres DB should be up and running

Features

Fiscal-Event-Aggregator computes the aggregate of data over a selected time period. Aggregator will apply the time range filter according to the following approach :

Fiscal periods will be picked up as per the current system time. Current year will be the current fiscal period starting from 1st of April of current year to 31st March of (current year+1). And it will also aggregate the data of one previous fiscal year starting from 1st of April of (current year -1)  to 31st March of current year.

As per the fiscal time periods, Below steps are there to aggregate the final fiscal event data :

  1. Group the sum of amount based on project id, COA(chart of account) id, and event type.

  2. Difference of sum of amount of "DEMAND" and "RECEIPT" event type with respect to distinct project id.

  3. Difference of sum of amount of "BILL" and "PAYMENT" event type with respect to distinct project id.

Upsert the final aggregated fiscal event data into the Postgres DB.

Environment

Note : Below environment variables need to be configured with respect to environment

Key

Value

Description

Key

Value

Description

DRUID_CONNECT_PROTOCOL

HTTP

This is hardcoded value And won’t change w.r.t environment. And It depends upon the druid broker’s protocol that is getting used to connect.

DRUID_CONNECT_PORT

8082

This is hardcoded value And won’t change w.r.t environment. It depends upon the druid broker protocol that we are using and corresponding port of that druid broker.

DRUID_HOST

druid-broker.olap

this is kept under configmaps.

FISCAL_EVENT_DATASOURCE

fiscal-event

This is the data Source present in Druid DB. It will same as it defined in Druid DB.

Interaction diagram

 

Configuration

Update all the configuration in the dev.yaml, qa.yml, prod.yaml file.