Java

Java SDK

Enterprise-grade Java SDK with Spring Boot integration

Spring Boot
Enterprise-grade
Maven/Gradle
Java 11+

Quick Start

Get up and running with the Fluxum Java SDK in minutes

Using maven

<dependency>
  <groupId>com.fluxum</groupId>
  <artifactId>fluxum-sdk-java</artifactId>
  <version>1.0.0</version>
</dependency>

Spring Boot Integration

Full Spring Boot integration with auto-configuration and dependency injection.

Exception Handling

Comprehensive exception handling with custom exceptions and retry mechanisms.

Event-driven

Event-driven message processing with listeners and priority-based queuing.

Event Handling

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());
});

Job Submission Examples

Examples of different job types and configurations

Priority Queuing

// 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 Features

Advanced configuration and features

Spring Boot Service

@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();
            }
        });
    }
}

Error Handling

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());
    }
});

Requirements

System requirements and dependencies

Java Version

Java 11 or higher

Dependencies

  • Maven 3.6+ or Gradle 6.0+
  • Spring Boot 2.7+ (optional, for integration)
  • Valid Fluxum API key

API Reference

Complete API documentation

Constructor

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();

Methods

// 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();