
Enterprise-grade Java SDK with Spring Boot integration
Get up and running with the Fluxum Java SDK in minutes
<dependency>
<groupId>com.fluxum</groupId>
<artifactId>fluxum-sdk-java</artifactId>
<version>1.0.0</version>
</dependency>Full Spring Boot integration with auto-configuration and dependency injection.
Comprehensive exception handling with custom exceptions and retry mechanisms.
Event-driven message processing with listeners and priority-based queuing.
Handle real-time events with the SDK
// Connection events
client.onConnect(() -> {
System.out.println("Connected to Fluxum server");
});
client.onDisconnect((reason, code) -> {
System.out.println("Disconnected: " + reason + ", " + code);
});
// Job events
queue.onMessage((message) -> {
System.out.println("Received message: " + message.getData());
message.ack();
});
queue.onError((error) -> {
System.out.println("Queue error: " + error.getMessage());
});
// Error handling
client.onError((error) -> {
System.out.println("Client error: " + error.getMessage());
});Examples of different job types and configurations
// Send high priority message
QueueMessage urgentMessage = QueueMessage.builder()
.data(Map.of("type", "urgent", "content", "System alert"))
.priority("high")
.build();
queue.sendMessage(urgentMessage);
// Send normal priority message
QueueMessage normalMessage = QueueMessage.builder()
.data(Map.of("type", "normal", "content", "Regular update"))
.priority("normal")
.build();
queue.sendMessage(normalMessage);Advanced configuration and features
@Component
public class FluxumService {
private final FluxumClient client;
public FluxumService(@Value("fluxum.api.key") String apiKey) {
this.client = new FluxumClient.Builder()
.apiKey(apiKey)
.autoConnect(true)
.build();
}
public void processOrders() {
Queue queue = client.getQueue("orders");
queue.onMessage((message) -> {
try {
Order order = (Order) message.getData();
processOrder(order);
message.ack();
} catch (Exception e) {
message.nack();
}
});
}
}Comprehensive error handling and recovery
queue.onError((error) -> {
if (error instanceof AuthenticationException) {
System.err.println("Authentication failed: " + error.getMessage());
} else if (error instanceof ConnectionException) {
System.err.println("Connection failed: " + error.getMessage());
} else {
System.err.println("Unknown error: " + error.getMessage());
}
});
queue.onReconnect(() -> {
System.out.println("Reconnected to queue");
});
// Global error handler
client.onError((error) -> {
switch (error.getType()) {
case AUTHENTICATION:
System.err.println("Authentication error: " + error.getMessage());
break;
case CONNECTION:
System.err.println("Connection error: " + error.getMessage());
break;
case RATE_LIMIT:
System.err.println("Rate limit exceeded: " + error.getMessage());
break;
default:
System.err.println("Unknown error: " + error.getMessage());
}
});System requirements and dependencies
Java 11 or higher
Complete API documentation
FluxumClient client = new FluxumClient.Builder()
.apiKey(String apiKey)
.environment(String environment)
.autoConnect(boolean autoConnect)
.enableEncryption(boolean enableEncryption)
.maxRetries(int maxRetries)
.retryDelay(int retryDelay)
.logLevel(String logLevel)
.build();// Queue operations
Queue createQueue(String name, String description);
Queue getQueue(String name);
void deleteQueue(String name);
// Message operations
void sendMessage(QueueMessage message);
void onMessage(MessageHandler handler);
void onError(ErrorHandler handler);
// Connection
void connect();
void disconnect();
boolean isConnected();