<commit_before># Document is a work-in-progress

## Go-gentle
Talk to external services like a gentleman.

## Intro
This package provides composable resilient implementations of two interfaces:
Stream and Handler.

## Stream, Handler and back-pressure
__Stream__ and __Handler__ are our fundamental abstractions to achieve back-pressure.
Stream has one method __Get()__ that emits Message. Handler has another method
__Handle()__ that transforms a given Message. The helper [NewMappedStream()](https://godoc.org/github.com/cfchou/go-gentle/gentle#NewMappedStream)
creates a MappedStream whose Get() emits a Message transformed by a Handler
from a given Stream.

## Resiliency
Besides back-pressure, resiliency patterns are indispensable in distributed
systems as external services are not reliable at all time. Some of the patterns
come to useful include __rate limiting, retry/back-off, circuit-breaker and bulkhead__.
Each of our implementations of Stream and Handler features one resiliency<commit_msg>add build status<commit_after># Document is a work-in-progress

## Go-gentle
[![Build
Status](https://travis-ci.org/cfchou/go-gentle.png?branch=master)](https://travis-ci.org/cfchou/go-gentle)

Talk to external services like a gentleman.

## Intro
This package provides composable resilient implementations of two interfaces:
Stream and Handler.

## Stream, Handler and back-pressure
__Stream__ and __Handler__ are our fundamental abstractions to achieve back-pressure.
Stream has one method __Get()__ that emits Message. Handler has another method
__Handle()__ that transforms a given Message. The helper [NewMappedStream()](https://godoc.org/github.com/cfchou/go-gentle/gentle#NewMappedStream)
creates a MappedStream whose Get() emits a Message transformed by a Handler
from a given Stream.

## Resiliency
Besides back-pressure, resiliency patterns are indispensable in distributed
systems as external services are not reliable at all time. Some of the patterns
come to useful include __rate limiting, retry/back-off, circuit-breaker and bulkhead__.
Each of our implementations of Stream and Handler features one resiliency
{'fraction_non_alphanumeric': 0.06666666666666667, 'fraction_numerical': 0.0, 'mean_word_length': 5.477203647416413, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 4, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2664200', 'n_tokens_mistral': 592, 'n_tokens_neox': 548, 'n_words': 245}