Shield The HTTP Engine

Shield is a service that you can deploy which aims to be "Production Readiness in a Box" for your service oriented architecture.

Instead of re-implementing common problems like authentication, rate-limiting, and caching in each backend service, Shield groups these concerns into a single convenient, reusable location.

Release v0.2.259 Get Started

Feature Overview

Shield sits between your precious microservices and the raging masses of the internet. A single Shield instance can handle multiple domains, a fleet of backend services, and thousands of requests per second with only a few milliseconds of overhead.

Shield Layout

Shield's dynamic configuration system allows you to add, alter, and remove domains, middleware, and upstream microservices smoothly without dropping a single request.


Service Discovery

Service Discovery

Find Upstream Services

Use your preferred service discovery tool for telling Shield about your upstream microservices. Shield has several already implemented, but it's easy to create your own.

Swagger

Discover Their Endpoints

Shield uses the Swagger Documentation of your upstream microservices to dynamically build its routing table. No duplicate config needed.

Request Routing

Route Your Request

Incoming HTTP requests are routed to the upstream microservice that is best able to handle it. If multiple instances fit the bill, Shield will load balance the requests between them.


Transform and Handle Your Request With Middleware and Listeners

Common HTTP problems like rate limiting, caching, and authentication can be solved with middleware. Timeouts ensure that requests get serviced in a timely manner.

Listeners are like middleware, but act upon the request/response pair once the request has completed. They are perfect for logging, metrics, and analysis.

Middleware

Choose Your Transport Method

Shield's front end listens and responds in the lingua franca of the internet, HTTP. When talking with your microservice backends, Shield can easily translate to a different transport mechanism: HTTP, AWS Lambda, or your RPC or binary format of choice.

Transport methods

Enables Smooth Blue/Green Deployments For Your Backends

Shield's dynamic weighted load balancing lets you deploy a new version your upstream microservice and gradually transition traffic away from the old deployment. An elegant solution for a more civilized age, compared to suddenly dumping traffic on a new deployment.

Blue Green Deployments

Built On Top Of Some Serious Tech

Shield is built from the ground up to be fast and reliable. It relies on Spray for blazing fast HTTP handling and on Akka's "Let it Crash" actor paradigm for fault tolerance.


Get Started Now

Dive into how you can use Shield with our Getting Started Guide

Get Started