An open API service indexing awesome lists of open source software.

https://github.com/luistak/windowed-observable

Messaging lib using a pub/sub observable scoped by namespaces.
https://github.com/luistak/windowed-observable

communication hacktoberfest hacktoberfest2021 microfrontend microfrontends namespaces observable pubsub react topic windowed

Last synced: 5 months ago
JSON representation

Messaging lib using a pub/sub observable scoped by namespaces.

Awesome Lists containing this project

README

        


windowed-observable

Windowed observable

The home for all windowed-observable projects




![Npm version](https://img.shields.io/npm/v/windowed-observable)
![Build](https://img.shields.io/github/workflow/status/luistak/windowed-observable/CI/master)
![Size](https://img.shields.io/bundlephobia/minzip/windowed-observable)
![License](https://img.shields.io/github/license/luistak/windowed-observable)
[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style)](http://makeapullrequest.com)
![Downloads](https://img.shields.io/npm/dt/windowed-observable)

## Introduction

### Problem

In a micro frontends setup, one of the main problems is [cross application communication](https://dev.to/luistak/cross-micro-frontends-communication-30m3) and this library aims to solve it by providing a simple and framework agnostic API with zero configuration

### Solution

Exposing an `observable` that behaves like scoped a pub/sub topic passing events per namespaces.

This `Observable` is exported by the core package [`windowed-observable`](packages/core/README.md) with the following features:

### ✨ Features
- 📦 Scoped events by `namespaces`
- 🎣 Events history retrieval with `SubscriptionOptions`
- 🛡 100% Written in TypeScript with static types

## Packages

- [**windowed-observable**](packages/core/README.md) is a library for messaging using Observables, making it easier to communicate multiple apps or parts of an app using the window. It exposes an Observable that behaves like a scoped pub/sub topic using namespaces.

- [**react-windowed-observable**](packages/react/README.md) is a react abstraction over [`windowed-observable`](packages/core/README.md) exposing a helper that creates a scoped [`Context`](https://reactjs.org/docs/context.html) to handle events in a specific namespace