Fala Gustavo! Muito massa!
O Observer é um padrão muito útil mesmo. Recentemente precisei utilizá-lo no Lixlr para comunicar alterações no estado da aplicação. Basicamente quando o React altera seu estado (pelo react-tracked), eu preciso comunicar todo o Core da aplicação sobre essa mudança, pois o Core funciona separadamente do React.
Também tem um site muito bom sobre padrões de design, Refactoring.Guru.
Os códigos estão aqui:
https://github.com/dhrleandro/lixlr/blob/main/src/core/state/AbstractStateObserver.ts
https://github.com/dhrleandro/lixlr/blob/main/src/core/state/StateManager.ts
https://github.com/dhrleandro/lixlr/blob/main/src/core/state/SubjectObserver.ts
https://github.com/dhrleandro/lixlr/blob/main/src/core/App.ts