Logging contextual information
With Armeria's Logback integration, you can log the properties of the
Structured logging
Although traditional logging is a useful tool to diagnose the behavior of an application, it has its own
Request Context
RequestContext is the central abstraction for accessing request-scoped information in Armeria.
Threading model
Armeria is built on Netty's non-blocking I/O model. Understanding how Armeria's thread pools work is
Understanding timeout and cancellation origins
When working with Armeria's timeout mechanisms, it's important to understand that timeouts and cancellations
Sending a streaming response with back pressure
Suppose we want to serve a static file whose size is larger than your available memory. If we load the file into the memory at once, we will definitely get an OutOfMemoryError.
Structured logging with Kafka
TBW - See KafkaAccessLogWriter.
Collecting metrics
Armeria has built-in support for collecting metrics both on the server and client side.
Unit-testing Client and Service
A unit test of a client or a service will require you to prepare two objects:
Production checklist
Note that the advice on this page is not always applicable for every use case and thus should be
SAML Single Sign-On
Visit armeria-examples to find a fully working example.
Athenz integration
This document explains how to integrate Armeria with Athenz, a platform for service
Spring Boot integration
The Spring framework provides powerful features necessary for building web applications
Using Armeria with Spring WebFlux
Visit armeria-examples to find a fully working example.
Using Armeria with Dropwizard
Visit armeria-examples to find a fully
Kotlin integration
Coroutines support for annotated services
Scala integration
As a matter of fact, there are three distinct ways to integrate Armeria and Scala:
ScalaPB integration
Visit here to find a fully working example.
Configuring global flags
What flags in Armeria are
Zipkin integration
If you want to troubleshoot latency problems in microservice architecture, you will want to use distributed
Client interoperability
This page describes methods to achieve interoperability with some well-known clients.