The SolaceCore Compose application has been enhanced with comprehensive features that align with the actor and channel architecture of the SolaceCore framework. This document outlines the new features and improvements made to the multiplatform Compose application.
The application is built as a Kotlin Multiplatform project supporting both desktop and web platforms using Jetpack Compose. It provides real-time monitoring and management capabilities for the SolaceCore actor system.
File: composeApp/src/commonMain/kotlin/org/solace/composeapp/ui/components/ChannelMonitoringView.kt
- Real-time Channel Visualization: Displays active channels with connection states, metrics, and throughput information
- Connection State Indicators: Visual badges showing Connected, Disconnected, Connecting, or Error states
- Channel Metrics: Message counts (sent/received/dropped), latency, throughput, and error rates
- Source-Target Mapping: Clear display of data flow between actors
File: composeApp/src/commonMain/kotlin/org/solace/composeapp/ui/components/WorkflowVisualizationView.kt
- Visual Workflow Diagrams: Graphical representation of actor connections and data flow
- Actor Node Positioning: Automatic grid-based layout for actor visualization
- Workflow State Management: Display of workflow status (Running, Stopped, Paused, Error, Initialized)
- Interactive Elements: Visual feedback for workflow states and connections
File: composeApp/src/commonMain/kotlin/org/solace/composeapp/ui/components/ActorControlPanel.kt
- Lifecycle Controls: Start, Stop, Pause, Resume functionality for individual actors
- Bulk Operations: Quick action buttons for managing all actors simultaneously
- Actor Creation/Deletion: Interface for dynamic actor management
- State-Aware Controls: Context-sensitive buttons based on current actor state
File: composeApp/src/commonMain/kotlin/org/solace/composeapp/ui/components/ActorListView.kt
- Clickable Selection: Interactive actor selection with visual feedback
- Enhanced Metrics Display: Comprehensive display of actor performance metrics
- State Indicators: Color-coded badges for different actor states
- Responsive Design: Improved layout and spacing for better usability
File: composeApp/src/commonMain/kotlin/org/solace/composeapp/ui/data/ChannelDisplayData.kt
- Channel Data Structures: Complete data models for channel monitoring
- Workflow Representations: Data structures for workflow visualization
- Metrics Tracking: Enhanced metrics for channels and workflows
- State Management: Comprehensive state definitions for all components
File: composeApp/src/commonMain/kotlin/org/solace/composeapp/ui/service/RealTimeActorService.kt
- Multi-Component Monitoring: Simultaneous tracking of actors, channels, and workflows
- Lifecycle Management: Methods for actor creation, deletion, and state control
- Realistic Sample Data: Enhanced mock data for demonstration purposes
- Extended Update Cycles: Comprehensive real-time updates across all components
- String Formatting: Replaced
String.format()calls with multiplatform-compatible formatting - Time APIs: Migrated from
System.currentTimeMillis()toClock.System.now().toEpochMilliseconds() - Icon Compatibility: Simplified icon usage to avoid multiplatform compilation issues
- Two-Column Layout: Organized interface into monitoring and control sections
- Visual Feedback: Added selection states and interactive elements
- Consistent Design: Unified color scheme and typography across components
- Responsive Components: Adaptive layouts for different screen sizes
SolaceRealTimeUI
├── SystemMetricsDashboard (existing, enhanced)
├── MonitoringControlPanel (existing)
├── Left Column
│ ├── ActorListView (enhanced with selection)
│ └── ChannelMonitoringView (new)
└── Right Column
├── ActorControlPanel (new)
├── WorkflowVisualizationView (new)
└── QuickActionButtons (new)
-
RealTimeActorService provides reactive data streams for:
- Actor states and metrics
- Channel connection states and throughput
- Workflow states and structure
- System-wide metrics
-
UI Components consume these streams and provide:
- Real-time visualization updates
- Interactive controls for lifecycle management
- User feedback and status indicators
The current implementation uses mock data for demonstration. Future integration with the actual SolaceCore framework would involve:
- Actor System Integration: Connect to real ActorSupervisor for live data
- Channel Monitoring: Interface with actual Port and Channel implementations
- Workflow Management: Integration with WorkflowManager for real workflow control
- Persistence: Connect to storage systems for state persistence
The application successfully builds for both desktop and web platforms:
- Desktop:
./gradlew :composeApp:desktopRun - Web:
./gradlew :composeApp:webBrowserDevelopmentRun
All multiplatform compatibility issues have been resolved, and the application compiles cleanly for both target platforms.
The enhanced SolaceCore Compose application now provides a comprehensive, real-time monitoring and management interface that aligns closely with the actor and channel architecture of the SolaceCore framework. The implementation demonstrates advanced Compose UI patterns, multiplatform development practices, and provides a solid foundation for future integration with the actual SolaceCore runtime system.