Async IO Real-time infrastructure for the JVM.
We build Atmosphere — the open-source framework for WebSocket, SSE, rooms, presence, and AI streaming on Spring Boot and Quarkus. In production since 2008.
Trusted by teams at
What is Atmosphere?
The real-time framework for the JVM. Transport fallback, reconnection, rooms, presence, clustering — the plumbing every real-time app needs but nobody wants to maintain.
WebSocket + SSE
First-class WebSocket with automatic SSE and long-polling fallback. Heartbeats, reconnection, and message caching built in.
Learn moreRooms & Presence
Named groups with real-time join/leave events, member lists, message history, and direct messaging. No external dependencies.
Learn moreAI/LLM Streaming
Stream tokens from any LLM to browsers. Adapters for Spring AI, LangChain4j, and Google ADK. Built-in MCP server for AI agents.
Learn moreSpring Boot & Quarkus
Auto-configured starters for both frameworks. One dependency, zero rewiring. Also works on any Servlet 6.0+ container.
Learn moreReal-time chat in two files
A @ManagedService on the server, a useAtmosphere
hook on the client. WebSocket with automatic fallback, reconnection,
and heartbeats — all handled for you.
@ManagedService(path = "/atmosphere/chat")
public class ChatEndpoint {
@Ready
public void onReady(AtmosphereResource r) {
r.getBroadcaster().broadcast(
r.uuid() + " joined");
}
@Message(decoders = {JacksonDecoder.class})
public ChatMessage onMessage(ChatMessage msg) {
return msg; // broadcast to all
}
@Disconnect
public void onDisconnect(AtmosphereResourceEvent e) {
e.broadcaster().broadcast(
e.getResource().uuid() + " left");
}
} import { useAtmosphere } from 'atmosphere.js/react';
export default function Chat() {
const { data, push, state } = useAtmosphere({
request: {
url: '/atmosphere/chat',
transport: 'websocket',
},
});
const send = (text) =>
push({ author: 'me', text });
return (
<div>
<p>{state} — {data?.text}</p>
<button onClick={() => send('Hello!')}>Send</button>
</div>
);
} Support Subscriptions
Get support from the core team with fast response times. Meet your production schedule and compliance requirements.
Bronze
- Coverage Business Hours
- Response (S1) 7 Business Days
- Response (S2) 10 Business Days
- Incidents 2 / year
- Phone Support —
- Email Support ✓
- Emergency Patches —
Silver
- Coverage Business Hours
- Response (S1) 1 Business Day
- Response (S2) 2 Business Days
- Incidents 10 / year
- Phone Support —
- Email Support ✓
- Emergency Patches —
Gold
- Coverage Business Hours
- Response (S1) 4 hours
- Response (S2) 1 Business Day
- Incidents 15 / year
- Phone Support ✓
- Email Support ✓
- Emergency Patches ✓
Platinum
- Coverage 24x7
- Response (S1) 1 hour
- Response (S2) 4 hours
- Incidents Unlimited
- Phone Support ✓
- Email Support ✓
- Emergency Patches ✓