Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/esotuvaka/lattice

Lattice is a configurable API Gateway. It features authentication via API Key, middleware, reverse proxying and health checks for upstream servers, caching, rate limiting, and more
https://github.com/esotuvaka/lattice

api api-gateway apis cache docker golang microservices proxy redis reverse-proxy

Last synced: about 2 months ago
JSON representation

Lattice is a configurable API Gateway. It features authentication via API Key, middleware, reverse proxying and health checks for upstream servers, caching, rate limiting, and more

Awesome Lists containing this project

README

        

# Lattice

A high-performance API Gateway written in Go that provides authentication, caching, rate limiting, and dynamic configuration management.

## Features

**Core Features**

- [ ] Dynamic route configuration via Redis
- [ ] JWT and API key authentication
- [ ] Response caching with Redis
- [ ] Distributed rate limiting
- [x] Reverse proxy to upstream services
- [x] Automatic retry
- [ ] Circuit breaking
- [ ] Load balancing

**Observability**

- [ ] Prometheus metrics
- [ ] Grafana dashboards
- [x] Structured logging (zap)
- [ ] Distributed tracing
- [ ] Health checks

**Security**

- [ ] JWT validation
- [ ] API key management
- [ ] Role-based access control
- [ ] TLS termination
- [ ] Request validation

## Architecture

```mermaid
graph TD
Client[Client] --> Lattice[Lattice API Gateway]
Redis[(Redis)] --> Lattice
Lattice --> Redis[(Redis)]
Lattice --> Upstream1[Upstream 1]
Lattice --> Upstream2[Upstream 2]
Lattice --> UpstreamN[Upstream N]
Lattice --> Prometheus[Prometheus]
Prometheus --> Grafana[Grafana]
```