Configuration
Customize your Frontier gateway with frontier.yaml.
Save your configuration as frontier.yaml and mount it to the container at /usr/conf/frontier.yaml to take effect.
Minimal Configuration
To get started, you only need to configure the listening addresses for microservices and edge nodes:
# Microservice configuration
servicebound:
listen:
network: tcp
addr: 0.0.0.0:30011
# Edge node configuration
edgebound:
listen:
network: tcp
addr: 0.0.0.0:30012
# Allow Frontier to allocate edgeID if no ID service is registered
edgeid_alloc_when_no_idservice_on: trueTLS and mTLS
Frontier supports TLS for both microservices and edge nodes. It also supports mTLS where Frontier verifies the client certificate.
edgebound:
listen:
addr: 0.0.0.0:30012
network: tcp
tls:
enable: true
certs:
- cert: edgebound.cert
key: edgebound.key
insecure_skip_verify: false
# Enable mTLS: verify client certificates against a CA
mtls: true
ca_certs:
- ca1.certExternal Message Queue (MQ) Routing
Frontier can automatically forward messages published by Edge nodes directly to external Message Queues based on topics.
Kafka
If an Edge node publishes to a topic listed in this array, Frontier will forward it to Kafka. If microservices also declare the same topic, Frontier hashes the traffic between them.
mqm:
kafka:
enable: true
addrs:
- "kafka:9092"
producer:
topics:
- "sensor/temperature"
- "device/events"Redis
mqm:
redis:
enable: true
addrs:
- "redis:6379"
db: 0
password: "your-password"
producer:
channels:
- "alerts"
- "metrics"Frontier also supports AMQP (RabbitMQ), NATS (with Jetstream support), and NSQ.
Routing Strategy & Database
dao:
# Supports buntdb and sqlite3. Both use in-memory mode to keep Frontier stateless.
# buntdb is recommended for maximum performance.
backend: buntdb
exchange:
# How Frontier hashes and routes traffic when multiple microservices subscribe
# to the same topic/method. Options: edgeid, srcip, random
hashby: edgeid