Question

Do the database transaction also start and end with the calculation logic (i.e., separate transaction for each Data Feed row)?

Answer

The consumer (i.e., the thread running the ‘Calculation Logic’) performs its own transaction management, independent of the feeder. It’s important to distinguish between the transaction in the domain objects DB and the analytics DB:

The reason behind this design is that it’s much faster to process the data locally, and also much faster to bulk-load the results, rather than update individual rows or even smaller batches.