You are viewing a single comment's thread from:

RE: Symbiont{s} | Steem DAO | Wallet Development Update #1

the performance overhead made it an unattractive solution.

I'm not really following what makes this a performance-constrained problem. Don't you already have an ordered list of proposals in terms of voting support, whether or not each one is past its start date and before its end date, what its payment is, and what the total budget is? I assume you'd need that info just for the basic display. Can't you then just iterate through that short list until you figure out which one exhausts the budget (usually a return proposal)?

Sort:  

Hi, @danmaruschak,

If the calculation is performed client-side, we must ensure that the page is not slow and loads within an acceptable timeframe across all types of devices. On the other hand, performing the calculation server-side also presents scalability challenges, as having thousands of users accessing the proposals page simultaneously would place significant load on the server infrastructure.

The calculation logic itself is relatively straightforward. Each proposal whose daily payout is less than or equal to the available daily DAO budget is marked as funded. As proposals are processed in descending order of vote ranking, the cumulative sum of daily payouts is tracked. Once this cumulative total exceeds the DAO's daily budget, all remaining proposals are no longer flagged as funded.

We will proceed with testing this approach further, and if any noticeable decline in user experience is observed, it should be relatively easy to revert. Given the points outlined in the post, this remains our preferred approach provided it performs well in practice, as we generally dislike implementations that require additional maintenance.

Thank you,