Real-Time Updates

Overview

Abrianto keeps your data synchronized in real-time, ensuring you always have access to the most current information. This feature eliminates the need for manual refreshes and provides an immediate view of changes as they happen.

What Is Real-Time Updates?

Real-time updates push changes to your interface immediately as they occur, rather than requiring you to refresh the page. This feature is especially valuable when multiple users are working with the same data or when time-sensitive information needs to be tracked accurately.

Key Features

  • Instant Data Synchronization: Changes appear instantly without manual refresh
  • Multi-User Awareness: See updates from other users working on the same accounts or tasks
  • Event-Based Notifications: Receive notifications about important changes
  • Automatic Cleanup: Old sessions are automatically cleaned up for optimal performance
  • Configurable Refresh Rates: Adjust update frequency based on your needs

How Real-Time Updates Work

The Technology Behind Real-Time Updates

Abrianto uses Socketi (a self-hosted Pusher implementation) to establish real-time connections between your browser and the server. When changes occur in the system:

  1. Server Event: An action triggers an event (e.g., payment received, task completed, account status change)
  2. Socketi Push: The server publishes the event to the appropriate channel
  3. Client Listener: Your browser subscribes to the channel and receives the event
  4. Automatic Refresh: The application automatically refreshes the relevant data

Channel Structure

Real-time events are published to specific channels based on the entity being updated:

  • Account Channels: account-{accountId}
  • Task Channels: task-{taskId}
  • Account Group Channels: account-group-{groupId}

For example, when a payment is recorded for account #123, the server publishes an update event to the account-123 channel, and all browsers subscribed to that channel receive the notification.

Enabling Real-Time Updates

Prerequisites

  1. Socketi Server: Ensure your Socketi server is running and accessible

  2. Environment Variables: Configure the Socketi settings in your .env file:

    SOCKETI_ENABLED=true
    SOCKETI_KEY=your_socketi_key
    SOCKETI_CLUSTER=your_cluster
    SOCKETI_CHANNELPrefix=abrianto
    SOCKETI_HTTPEnabled=true
    SOCKETI_HTTPPort=6767
  3. Client Library: The PusherJS library is automatically included in your application

Automatic Activation

Real-time updates are automatically activated when you log in to the system. No additional configuration is required in your browser settings or user preferences.

Using Real-Time Updates

Viewing Real-Time Changes

Real-time updates work automatically throughout the application:

Example 1: Payment Tracking

  1. You’re viewing account #123 on the Accounts page
  2. Another user records a $500 payment for the same account
  3. Within seconds, the payment appears in your account details
  4. The account balance updates automatically
  5. Your dashboard reflects the new balance immediately

Example 2: Task Assignment

  1. You have an active task that you’re working on
  2. A workflow automatically assigns a new task to you
  3. You receive a notification and the task appears in your task list
  4. The task status updates without page refresh

Example 3: Status Changes

  1. You’re viewing the Debtor page
  2. A workflow changes a debtor’s status from “In Progress” to “Resolved”
  3. The status indicator updates immediately
  4. The dashboard filters update to reflect the new status

Notifications

When important changes occur, you’ll see visual indicators:

  • Badges: Notification badges appear on icons when new events occur
  • Toast Messages: Brief pop-up messages appear to confirm actions
  • Animation: Elements animate when they’re updated in real-time
  • Sound: Optional sound notifications for critical events (configurable)

Performance Considerations

Real-time updates are optimized for performance:

  • Efficient Updates: Only affected data is refreshed, not entire pages
  • Background Sync: Updates occur without interrupting your workflow
  • Battery Friendly: Smart update intervals reduce battery usage
  • Network Efficient: Uses WebSocket connections efficiently

Best Practices

Working with Real-Time Updates

  1. Keep Pages Active: Keep pages open in your browser to receive updates
  2. Monitor Notifications: Pay attention to notification badges and messages
  3. Refresh Periodically: For critical data, occasionally refresh the page manually
  4. Update Your View: Close and reopen pages if you notice delayed updates
  5. Check Connection: Verify the connection status if updates aren’t appearing

Troubleshooting

Updates Not Appearing?

  1. Check Connection: Look for the connection status indicator in the bottom-right corner
  2. Refresh Page: Manually refresh the page to re-establish the connection
  3. Clear Cache: Clear your browser cache and reload the page
  4. Check Network: Ensure your internet connection is stable
  5. Restart Server: If the problem persists, restart the Socketi server

Delayed Updates?

  1. Network Latency: High network latency can cause delays
  2. Heavy Load: High system load may slow down updates
  3. Clear Cache: Clear your browser cache to improve performance
  4. Close Other Tabs: Too many open tabs can consume resources

Too Many Notifications?

  1. Filter Settings: Adjust notification preferences in your user settings
  2. Important Only: Configure notifications to only appear for critical events
  3. Volume Control: Reduce notification volume or mute non-essential alerts

Configuration

User Preferences

You can configure real-time update behavior in your user settings:

  • Update Frequency: Choose between immediate, 30 seconds, or 1 minute updates
  • Sound Notifications: Enable or disable sound alerts
  • Notification Types: Select which event types trigger notifications
  • Connection Health: View real-time connection status and health metrics

Server-Side Configuration

Server administrators can configure real-time update settings:

  • Connection Timeout: Set how long a connection can remain idle
  • Heartbeat Interval: Configure how often the server checks connection health
  • Max Connections: Set maximum number of concurrent connections
  • Message Retention: Configure how long to retain connection messages

Use Cases and Examples

Collections Agency Example

Scenario: Multiple agents working on the same accounts

  1. Agent A records a payment for account #456
  2. Agent B, who also has account #456 open, sees the payment immediately
  3. Both agents can proceed with appropriate next steps
  4. The system automatically updates account balances across all sessions

Financial Institution Example

Scenario: Monitoring account due dates

  1. Your supervisor updates account #789’s due date
  2. All team members with account #789 open see the new due date immediately
  3. Tasks are automatically reassigned based on the new due date
  4. No manual data entry or system refresh is required

Debt Collection Team Example

Scenario: Coordinating task completion

  1. Agent C completes a task on account #101
  2. Agent D, who is working on related tasks for the same debtor, sees the update
  3. Agent D can adjust their approach based on the new information
  4. The workflow engine automatically creates follow-up tasks based on the updated state

Security and Privacy

Data Protection

Real-time updates are secured with:

  • Encryption: All WebSocket traffic is encrypted (WSS)
  • Authentication: Connections require valid authentication
  • Authorization: Only authorized users can subscribe to channels
  • Tenant Isolation: Data is isolated per tenant

Privacy Considerations

  1. Data Visibility: You only see updates for data you have access to
  2. No Storing: No data is stored or cached on your device
  3. Automatic Cleanup: Connections are automatically terminated after inactivity
  4. No Third-Party Sharing: Data sharing follows strict privacy policies

Troubleshooting Guide

Common Issues and Solutions

Problem 1: Connection Status Shows “Disconnected”

Solution:

  1. Refresh the page to re-establish the connection
  2. Check your internet connection
  3. Verify Socketi server is running: docker ps | grep socketi
  4. Check Socketi logs: docker logs abrianto-socketi-1

Problem 2: Updates Not Appearing for Account Changes

Solution:

  1. Verify the account is currently open in your browser
  2. Check that you have access to view the account
  3. Ensure Socketi connection is active (bottom-right status indicator)
  4. Manually refresh the page if needed

Problem 3: Connection Drops Frequently

Solution:

  1. Check your internet connection stability
  2. Close unnecessary browser tabs to free up resources
  3. Disable any browser extensions that might interfere with WebSocket connections
  4. Restart your browser and try again

Problem 4: Updates Are Too Frequent

Solution:

  1. Adjust your update frequency in user settings
  2. Configure notification preferences to reduce alerts
  3. Select specific event types to receive notifications for

Performance Tips

Optimizing Real-Time Update Performance

  1. Close Unused Tabs: Keep only necessary tabs open
  2. Limit Concurrent Connections: Don’t have multiple instances of the application open
  3. Regular Browser Maintenance: Clear browser cache and cookies periodically
  4. Update Your Browser: Use the latest version of your browser for optimal performance
  5. Network Optimization: Use a stable, high-speed internet connection

Battery Life Considerations

  1. Adjust Update Frequency: Longer intervals reduce battery consumption
  2. Background Sync: Allow the application to sync in the background when needed
  3. Screen Lock: Enable screen locking when away from your computer
  4. Idle Detection: Let the application enter idle state when not actively using it

Support and Resources

Getting Help

If you’re experiencing issues with real-time updates:

  1. Check Documentation: Review this guide for common solutions
  2. Contact Support: Reach out to our support team with your issue
  3. Server Status: Check server status dashboard for any outages
  4. Community Forum: Ask questions in our community forum

Additional Resources

  • System Status: Monitor real-time system status
  • Documentation: Explore other documentation topics
  • User Guide: Complete user guide for all features
  • API Documentation: For developers working with real-time APIs

Conclusion

Real-time updates are designed to keep you informed and synchronized with the latest changes in the system. By understanding how this feature works and following best practices, you can maximize the benefits of real-time data synchronization while maintaining good performance and privacy.

Next Steps: