Skip to content
Permalink
Browse files
Creating a readme for basic usage.
  • Loading branch information
johnament committed Nov 8, 2017
1 parent 964551d commit 5b7ccac6860c206b776f834b8976175c0607754f
Showing 1 changed file with 63 additions and 0 deletions.
@@ -0,0 +1,63 @@
# Apache Safeguard
Apache Safeguard is a library around Fault Tolerance, giving your application resilience in a highly distributed microservices framework. It is designed for use with CDI applications.

## What is Fault Tolerance?

In today's microservices runtimes, Fault Tolerance allows an application to handle the situations where another service it is consuming is unavialable.

## Types of Fault Tolerance

Fault Tolerance is a broad subject, has multiple areas of support typically found in a framework.

### Fallback

When a given invocation fails, you can declare a Fallback for that method.

### Timeout

Allows method invocations to be bounded to a specific duration. Once that boundary hits, an exception is thrown or a fallback is invoked.

### Retry

Allows a method to be invoked a number of times, as well as for a given duration.

### Circuit Breaker

Allows invocations to a given method as long as it is returning successfully. Based on thresholds defined, when a method begins failing invocations will be blocked. After a duration has passed invocations will begin to attempt again.

### Bulkhead

A bulkhead throttles concurrent access to a method. The throttling can either by based on a semaphore or a thread pool. Semaphores are invoked on the caller's thread and are not bound by any limit to pending requests. Thread pools are used to invoke the component asynchronously and have a finite amount of waiting invocations.

## Getting Started

Apache Safeguard is currently in development. You can use our snapshots from the Apache Snapshots repository. These builds are in no way endorsed.

```xml
<repositories>
<repository>
<id>apache-snapshot-repository</id>
<url>http://repository.apache.org/snapshots/</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<dependencies>
<dependency>
<artifactId>safeguard-api</artifactId>
<groupId>org.apache.geronimo.safeguard</groupId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<artifactId>safeguard-impl</artifactId>
<groupId>org.apache.geronimo.safeguard</groupId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
```

Apache Safeguard implements the [MicroProfile Fault Tolerance v1.0 specification](https://github.com/eclipse/microprofile-fault-tolerance/releases/tag/1.0)

0 comments on commit 5b7ccac

Please sign in to comment.