I'm trying to decide what approach to use (Observables, BehaviorSubject, Redux, etc.) in order to create a service for data sharing between unrelated components.

I have a Data Service which contains one big array of items (over 10k), which will be fetched over HTTP and updated locally.

This items will be shown in different components, and its attributes can be updated in any of this components. After any update, all components must reflect the changes made to an item.

Which will be the best option to achieve this in terms of performance?

I'm thinking of using a BehaviorSubject and calling "next" on every update of an item, but I'm not sure if this might be the best option.

Thank you for your help.