Tracking: Pool API #57
Labels
in-progress
Not yet ready to be merged
milestone
tracking
Tracking issue for major implementation component
Rationale
As discussed in https://docs.archit.us/internal/socketio/pools/, the rationale for pools is to provide entity caching on the frontend in a reusable way.
Primary gateway routes
Request-Reply implementation details
Partial replies
For fuzzy member searching (and other pool requests as well), we can perform a partial reply, where two or more response packets are sent in the context of a single request packet (all sharing the same request Id), where partial results can be returned (i.e. returning results from a cache before returning the full results)
Saga-based implementation details
Works based on applying pressure. Pressure can be applied to either an entire pool, a subset of entity Ids, or a fuzzy search query. Pressure applications are designed to group requests when bursts of entities are put pressure on (i.e. user displays in a large table), where pressures are debounced via saga for a configurable interval (though not large, as the socket.io transport model eliminates the need for extensive HTTP/SSL handshakes that would otherwise occur with frequent HTTP requests).
Each pressure application will be a redux action dispatched from the individual containers that consume the entities (if the entire pool is not present).
The text was updated successfully, but these errors were encountered: