1/17/2024 0 Comments Process layout excel solver![]() ![]() This seems like a very generic problem that a lot of people must have been solving and maybe I am just missing the right keyword.A subscribed value update is basically a :subcribed_value_changed event that would update internal map and recompute. The distinction between event and subscribed_values_map is just a convenience for the cell compute implementation. Every cell should implement a functionĬompute( incoming_event, subscribed_values_map, state ) -> ĭuring computations, the cell returns a list of actions, where each can be either broadcasting its value, broadcasting an event or subscribing to some other cell.Ībove this is a linking layer that supervises all the cells, creates them on demand and handles pub/sub distribution of values and events. In general, the computation in the system is triggered by a change in value of some cell (typically ones connected to external data), which should trigger a re-computation of all cells that depend on it.Īll of this seems to nicely fit into the whole process/functional/messaging paradigm, I have read something about actor model, heard something about C# orleans/grains (but don’t really understand it), and so far I have some ideas on how to design this:Įach cell is represented by genserver, that is created on-demand whenever its value is needed. Overall, the “value” in each cell doesn’t have to be a number, any term will do. Dynamically decide on which other cells are needed for computation, compute a part, re-decide, recompute, output.Take some values from other cells, make an external API call, process, output result.Compute an aggregation of values in a range of thousands of other cells.Combine several values from other cells in a simple math function.However these functions may contain tasks of various complexity, for instance: Some cells will update once per day or hour, some cells are connected to some external data source and update several times per second.Īssume that all cell formulas are representable as pre-defined parametrised functions (we do not care about formula parsing, UI etc.). Most of the cells will update once per year randomly. Not all of them need to be “visible” at the same time though.Īny value in cell can eventually change, however the frequency of changes spans several orders of magnitude. There is A LOT of cells, think hundreds of thousands to millions. There are lots of values in cells, some of the cells contain formulas (which may contain references to other cells, possibly also containing formulas). Hello, I am fairly new to the Elixir ecosystem and I would like to know your opinion on what is the best OTP/process architecture for the following problem: ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |