Skip to content

Commit

Permalink
Update readme.
Browse files Browse the repository at this point in the history
  • Loading branch information
tosh-coding committed Mar 2, 2024
1 parent 585674c commit 27a10ed
Showing 1 changed file with 7 additions and 6 deletions.
13 changes: 7 additions & 6 deletions Readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -116,15 +116,16 @@ ThreadFiber does not support pause. It is specifically intended for performance-
* _[ThreadPoolAdaptorFromQueueForThread](https://github.com/tosh-coding/AsyncFiberWorks/blob/main/src/AsyncFiberWorks/Core/ThreadPoolAdaptorFromQueueForThread.cs)_ - A thread pool that uses a single existing thread as a worker thread. Convenient to combine with the main thread.

## Channels ##
A channel is a messaging mechanism that abstracts the communication destination. Channel functionality has not changed much from the original Retlang design concept. The following explanation is quoted from Retlang.
A channel is a messaging mechanism that abstracts the communication destination. Used for 1:1 unicasting, 1:N broadcasting and N:1 message aggregation.

* _[Channel](https://github.com/tosh-coding/AsyncFiberWorks/blob/main/src/AsyncFiberWorks/Channels/Channel.cs)_ - Forward published messages to all subscribers. One-way. [Example](https://github.com/tosh-coding/AsyncFiberWorks/blob/main/src/AsyncFiberWorksTests/ChannelTests.cs#L18).
* _[AcknowledgementChannel](https://github.com/tosh-coding/AsyncFiberWorks/blob/main/src/AsyncFiberWorks/Channels/AcknowledgementChannel.cs)_ - Forward and acknowledge the published message to all or some of the subscribers. [Example](https://github.com/tosh-coding/AsyncFiberWorks/blob/main/src/AsyncFiberWorksTests/AcknowledgementChannelTests.cs#L17).

### Design concept ###
Channel functionality has not changed much from the original Retlang design concept. The following explanation is quoted from Retlang.

> Message based concurrency in .NET
> \[...\]
> The library is intended for use in [message based concurrency](http://en.wikipedia.org/wiki/Message_passing) similar to [event based actors in Scala](http://lampwww.epfl.ch/~phaller/doc/haller07actorsunify.pdf). The library does not provide remote messaging capabilities. It is designed specifically for high performance in-memory messaging.
(Quote from [Retlang page](https://code.google.com/archive/p/retlang/). Broken links were replaced.)

### Channel classes ###

* _[Channel](https://github.com/tosh-coding/AsyncFiberWorks/blob/main/src/AsyncFiberWorks/Channels/Channel.cs)_ - Forward published messages to all subscribers. One-way. Used for 1:1 unicasting, 1:N broadcasting and N:1 message aggregation. [Example](https://github.com/tosh-coding/AsyncFiberWorks/blob/main/src/AsyncFiberWorksTests/Examples/BasicExamples.cs#L20).
* _[SnapshotChannel](https://github.com/tosh-coding/AsyncFiberWorks/blob/main/src/AsyncFiberWorks/Channels/SnapshotChannel.cs)_ - Subscribers are also notified when they start subscribing, and separately thereafter. One-way. Used for replication with incremental update notifications. Only one responder can be handled within a single channel. [Example](https://github.com/tosh-coding/AsyncFiberWorks/blob/main/src/AsyncFiberWorksTests/Examples/BasicExamples.cs#L189).

0 comments on commit 27a10ed

Please sign in to comment.