# terry-mao/goim

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/terry-mao-goim).**

7,376 stars · 1,796 forks · Go · MIT

## Links

- GitHub: https://github.com/Terry-Mao/goim
- Homepage: https://goim.io/
- awesome-repositories: https://awesome-repositories.com/repository/terry-mao-goim.md

## Description

goim

## Tags

### DevOps & Infrastructure

- [Kafka-Driven Message Queue Servers](https://awesome-repositories.com/f/devops-infrastructure/queue-management/message-queues/kafka-driven-message-queue-servers.md) — Provides a Kafka-driven message queue server for asynchronous, non-blocking fan-out delivery to subscribers.
- [Kafka Message Queues](https://awesome-repositories.com/f/devops-infrastructure/message-queues/queue-based-message-distribution/kafka-message-queues.md) — Queues outgoing messages through Kafka for asynchronous, non-blocking fan-out delivery.
- [Horizontal Scaling Deployments](https://awesome-repositories.com/f/devops-infrastructure/high-availability-deployments/horizontal-scaling-deployments.md) — Adds or removes server modules without downtime to handle more connections. ([source](https://github.com/Terry-Mao/goim/blob/master/README_en.md))
- [Dynamic Module Scaling](https://awesome-repositories.com/f/devops-infrastructure/horizontal-scaling-tools/horizontal-scaling-job-schedulers/dynamic-module-scaling.md) — Scales message processing horizontally by adding or removing dynamic job and logic modules. ([source](https://github.com/Terry-Mao/goim))
- [Regional Routing](https://awesome-repositories.com/f/devops-infrastructure/regional-routing.md) — Directs messages to nodes in a specific geographic region to reduce latency and comply with data locality rules. ([source](https://github.com/Terry-Mao/goim/blob/master/CHANGELOG.md))

### Networking & Communication

- [Push Notification Servers](https://awesome-repositories.com/f/networking-communication/push-notification-servers.md) — Delivers push notifications to single users, multiple users, rooms, or all clients in a scalable cluster. ([source](https://github.com/Terry-Mao/goim/tree/master/.github/workflows))
- [Scalable Push Notification Platforms](https://awesome-repositories.com/f/networking-communication/communication-platforms-services/messaging-notification-systems/messaging-services/notification-delivery-services/push-notification-providers/scalable-push-notification-platforms.md) — Broadcasts messages to single users, multiple users, rooms, or all connected clients across a horizontally scalable cluster.
- [Asynchronous Queue Deliveries](https://awesome-repositories.com/f/networking-communication/communication-platforms-services/messaging-notification-systems/messaging-services/notification-delivery-services/targeted-notification-deliveries/asynchronous-queue-deliveries.md) — Queues outgoing messages through Kafka so the sender does not block on delivery. ([source](https://github.com/Terry-Mao/goim/blob/master/README_en.md))
- [Connection Keepalives](https://awesome-repositories.com/f/networking-communication/connection-keepalives.md) — Maintains persistent connections through application-level heartbeats and TCP keepalives. ([source](https://github.com/Terry-Mao/goim/blob/master/README_en.md))
- [Websocket Connection Managers](https://awesome-repositories.com/f/networking-communication/connection-management/websocket-connection-managers.md) — Handles WebSocket lifecycle including upgrade, read, and write operations for real-time communication. ([source](https://github.com/Terry-Mao/goim/tree/master/pkg))
- [Scalable](https://awesome-repositories.com/f/networking-communication/connection-management/websocket-connection-managers/scalable.md) — Manages persistent WebSocket and TCP connections at scale with heartbeat monitoring and horizontal scaling.
- [Redis-Based Node Registries](https://awesome-repositories.com/f/networking-communication/distributed-systems-p2p/peer-to-peer-networking/centralized-node-registries/redis-based-node-registries.md) — Tracks alive cluster nodes in Redis, removes dead nodes automatically, and routes messages by region or weight.
- [Multi-User Message Deliveries](https://awesome-repositories.com/f/networking-communication/ephemeral-message-delivery/multi-user-message-deliveries.md) — Pushes messages to single users, multiple users, or all connected clients in a single operation across the cluster.
- [Protocol-Agnostic Transport Layers](https://awesome-repositories.com/f/networking-communication/protocol-agnostic-transport-layers.md) — Provides a unified internal interface accepting connections over both WebSocket and raw TCP.
- [Room-Based Pub-Sub Broadcasting](https://awesome-repositories.com/f/networking-communication/pub-sub-systems/room-based-pub-sub-broadcasting.md) — Broadcasts a single message to all members of a chat room simultaneously. ([source](https://github.com/Terry-Mao/goim/blob/master/docs/benchmark_en.md))
- [Real-Time Message Push](https://awesome-repositories.com/f/networking-communication/real-time-message-push.md) — Delivers push notifications and messages to millions of concurrent users over WebSocket and TCP connections.
- [Multi-User Message Pushes](https://awesome-repositories.com/f/networking-communication/real-time-message-push/multi-user-message-pushes.md) — Sends the same message to multiple users simultaneously across the server cluster. ([source](https://github.com/Terry-Mao/goim))
- [Single-User Message Pushes](https://awesome-repositories.com/f/networking-communication/real-time-message-push/single-user-message-pushes.md) — Delivers a message to one specific user by routing through the cluster to the correct connection. ([source](https://github.com/Terry-Mao/goim))
- [Heartbeat Frames](https://awesome-repositories.com/f/networking-communication/tcp-connection-lifecycles/tcp-connection-acceptance/application-level-connection-acceptance/heartbeat-frames.md) — Ships application-level heartbeat frames over TCP and WebSocket to maintain persistent connections.
- [WebSocket and TCP Messaging Gateways](https://awesome-repositories.com/f/networking-communication/websocket-services/multi-protocol-gateways/persistent-websocket-gateways/websocket-and-tcp-messaging-gateways.md) — Maintains persistent connections over WebSocket and raw TCP with heartbeat monitoring and automatic dead connection cleanup.
- [Multi-Protocol Transports](https://awesome-repositories.com/f/networking-communication/websocket-transports/multi-protocol-transports.md) — Accepts client connections over both WebSocket and raw TCP through a unified interface. ([source](https://github.com/Terry-Mao/goim/blob/master/README_en.md))
- [Message Aggregations](https://awesome-repositories.com/f/networking-communication/communication-platforms-services/messaging-notification-systems/messaging-architectures/room-based-message-routing/message-aggregations.md) — Aggregates multiple messages for the same room into a single batched delivery to reduce overhead.
- [Device-Specific Deliveries](https://awesome-repositories.com/f/networking-communication/communication-platforms-services/messaging-notification-systems/messaging-services/notification-delivery-services/push-notification-providers/amazon-device-messaging-integrations/device-specific-deliveries.md) — Delivers push notifications to specific devices identified by unique device identifiers. ([source](https://github.com/Terry-Mao/goim/blob/master/CHANGELOG.md))
- [Cluster-Wide Broadcasting](https://awesome-repositories.com/f/networking-communication/communication-platforms-services/real-time-communication/broadcast-messaging/cluster-wide-broadcasting.md) — Delivers a message to every connected user across the entire server cluster in a single operation. ([source](https://github.com/Terry-Mao/goim/blob/master/README_en.md))
- [Weighted Hash Rings](https://awesome-repositories.com/f/networking-communication/consistent-hashing-distribution/weighted-hash-rings.md) — Distributes connections across nodes using a weighted consistent hash ring for balanced load.
- [Fan-Out Patterns](https://awesome-repositories.com/f/networking-communication/content-delivery-networks/fan-out-patterns.md) — Delivers a single message to multiple subscribers up to a configurable maximum count. ([source](https://github.com/Terry-Mao/goim/blob/master/README_en.md))
- [Room Message Aggregations](https://awesome-repositories.com/f/networking-communication/cross-chain-messaging-protocols/message-aggregators/room-message-aggregations.md) — Aggregates multiple messages for the same room into a single delivery to reduce network overhead. ([source](https://github.com/Terry-Mao/goim/blob/master/CHANGELOG.md))
- [Weighted Load Balancing](https://awesome-repositories.com/f/networking-communication/load-balancers/weighted-load-balancing.md) — Distributes connections across nodes proportionally to their configured weight to balance load. ([source](https://github.com/Terry-Mao/goim/blob/master/CHANGELOG.md))

### Data & Databases

- [Node Registries](https://awesome-repositories.com/f/data-databases/connection-managers/redis/node-registries.md) — Uses Redis as a node registry to track live cluster membership and route messages.
- [Binary Protocols](https://awesome-repositories.com/f/data-databases/data-serialization-formats/binary-serialization-protocols/binary-protocols.md) — Implements a compact binary wire protocol for efficient message encoding and decoding.
- [Kafka](https://awesome-repositories.com/f/data-databases/message-queue-integrations/kafka.md) — Queues outgoing messages through Kafka for non-blocking delivery, fan-out, and aggregated room delivery.

### System Administration & Monitoring

- [Connection Heartbeats](https://awesome-repositories.com/f/system-administration-monitoring/connection-heartbeats.md) — Keeps persistent connections alive by exchanging periodic heartbeat signals over TCP, WebSocket, or HTTP. ([source](https://github.com/Terry-Mao/goim))
- [Connection Health Monitors](https://awesome-repositories.com/f/system-administration-monitoring/health-monitoring/connection-health-monitors.md) — Detects and drops dead connections using application-level heartbeats and TCP keepalives. ([source](https://github.com/Terry-Mao/goim/blob/master/README.md))
- [Node Health Tracking](https://awesome-repositories.com/f/system-administration-monitoring/node-health-tracking.md) — Tracks node health via Redis heartbeats and removes dead nodes from the routing table automatically. ([source](https://github.com/Terry-Mao/goim/blob/master/CHANGELOG.md))

### Security & Cryptography

- [Subscriber Authentications](https://awesome-repositories.com/f/security-cryptography/secure-network-communication/secure-publish-subscribe-messaging/subscriber-authentications.md) — Rejects subscription requests from unauthenticated users, allowing only verified clients to receive messages. ([source](https://github.com/Terry-Mao/goim/blob/master/README_en.md))

### Part of an Awesome List

- [Communication and Messaging](https://awesome-repositories.com/f/awesome-lists/media/communication-and-messaging.md) — Distributed IM and push service.
- [Communication and Real-time](https://awesome-repositories.com/f/awesome-lists/media/communication-and-real-time.md) — A high-concurrency IM and real-time push service.
