Skip to content

LeoFuso/observable-streams-demo

Repository files navigation

Read Me First

The following App was developed as a part of the development cycle of Observable Streams functionalities collections, and it is intended as a learning tool and reference guide.

Data flow

        graph TB
        s1[approved-statement-lines] --> s2[statement-lines-classifier]
		s2 --> s3[receipt-apportionment]
		s2 --> s4[accouting-summarization]
		s3 --> s5[revenue-summarization]
		s4 --> s6[bank-statements]
		s5 --> s7[revenue]
		s8[order-apportionment] --> s5
		

Accounting Summarization

Summarizes all Apportionment Lines weekly, storing it in a circular queue per Account ID holding data up to six months old.

Statement Lines uniqueness is guaranteed using a Bloom Filter — responsible for carrying statistic data from the last two months.

Receipt Apportionment

Performs a distribution of all Statement Lines per Order-Account, in a ten-minute time window. Forwards all Statement Lines outside the ten-minute window to the Accounting Apportionment.

From:

Statement Line Account Baggage Amount Date
12 2 89, 115, 701 $ 15.0000 2022-11-25
13 2 65, 15 $ 09.3500 2022-11-26
19 2 65 $ 01.8900 2022-11-26
25 2 18 $ 19.3500 2022-11-27
102 7 18 $ 39.3500 2022-11-27

To:

Order Account Amount Statement Lines Date
89 2 $ 05.0000 12 2022-11-25
115 2 $ 05.0000 12 2022-11-26
701 2 $ 05.0000 12 2022-11-26
65 2 $ 06.5650 13, 19 2022-11-27
15 2 $ 04.6750 13 2022-11-27
18 2 $ 19.3500 25 2022-11-27
18 7 $ 39.3500 102 2022-11-27

Revenue Summarization

It Summarizes all costs related to an Order in the ten-minute window, by grouping together the receipt cost with all previous order-related costs.

Bank Statements

Holds reference for all Statement Lines for the current week, along with the resulting balance.

Getting Started

Running the App

There's a docker-compose file containing all needed dependencies.

Reference Documentation

For further reference, please consider the following sections:

Guides

The following guides illustrate how to use some features concretely:

Additional Links

These additional references should also help you:

About

Observable Streams Demo App

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages