Example applications demonstrating Atmosphere 4.0 across different deployment targets.
| Sample | Stack | Packaging | Rooms | Metrics | Native Image |
|---|---|---|---|---|---|
| chat | Servlet (WAR) | WAR | — | — | — |
| spring-boot-chat | Spring Boot 4.0 | JAR | ✅ | ✅ | ✅ |
| quarkus-chat | Quarkus 3.21+ | JAR | — | — | ✅ |
| embedded-jetty-websocket-chat | Embedded Jetty | JAR | — | — | — |
| grpc-chat | gRPC + Spring Boot | JAR | — | — | — |
| Sample | AI Backend | Tool Calling | Description |
|---|---|---|---|
| spring-boot-ai-chat | Built-in (Gemini/OpenAI/Ollama) | — | Basic AI streaming with @AiEndpoint |
| spring-boot-langchain4j-chat | LangChain4j | — | LangChain4j adapter |
| spring-boot-spring-ai-chat | Spring AI | — | Spring AI adapter |
| spring-boot-adk-chat | Google ADK | — | Google ADK adapter |
| spring-boot-embabel-chat | Embabel | — | Embabel agent adapter |
| spring-boot-langchain4j-tools | LangChain4j | @Tool (native) |
LangChain4j-native tool calling |
| spring-boot-ai-tools | LangChain4j | @AiTool (portable) |
Framework-agnostic tool calling pipeline |
| spring-boot-adk-tools | Google ADK | @AiTool (portable) |
ADK with Atmosphere tool bridge |
| spring-boot-spring-ai-routing | Spring AI | — | Cost/latency-based model routing |
| spring-boot-ai-classroom | Built-in | — | Multi-persona AI classroom (Expo client) |
| spring-boot-embabel-horoscope | Embabel | — | Embabel agent orchestration |
| Sample | Stack | Description |
|---|---|---|
| spring-boot-mcp-server | Spring Boot 4.0 | MCP (Model Context Protocol) server |
| spring-boot-durable-sessions | Spring Boot 4.0 | Persistent sessions with SQLite/Redis |
| spring-boot-otel-chat | Spring Boot 4.0 | OpenTelemetry observability |
| shared-resources | — | Shared frontend assets |
Each sample can be built independently:
# WAR sample (Jetty Maven plugin)
cd chat && mvn clean install && mvn jetty:run
# Spring Boot
cd spring-boot-chat && mvn clean package && java -jar target/*.jar
# Quarkus
cd quarkus-chat && mvn clean package && java -jar target/quarkus-app/quarkus-run.jar
# Embedded Jetty
cd embedded-jetty-websocket-chat && mvn clean install && mvn -PserverMost samples run on http://localhost:8080. The AI samples use different ports to allow running them simultaneously: spring-boot-langchain4j-chat on 8081, spring-boot-embabel-chat on 8082.
The core Chat.java handler is nearly identical across all samples:
@ManagedService(path = "/chat")
public class Chat {
@Ready
public void onReady() { }
@Message(encoders = {JacksonEncoder.class}, decoders = {JacksonDecoder.class})
public Message onMessage(Message message) {
return message;
}
}Only packaging and configuration differ — your business logic is portable across Spring Boot, Quarkus, and plain Servlet containers.