openimsdk / openimsdk/chat

[FEATURE REQUEST] Support Single-Process Startup for OpenIM Chat

Open
#715 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
Go
Stars
159
Forks
221
PR merge metrics
No merged PRs in 30d

Description

Why this feature?

Feature Request: Support Single-Process Startup for OpenIM Chat

Background

OpenIM Server has introduced a unified cmd/main.go entry, allowing all internal modules to run within a single process. This significantly simplifies local development, debugging, deployment, and embedding.

It would be great if OpenIM Chat could provide a similar startup mode.

Proposal

Add a unified entry point such as:

cmd/main.go

which initializes and starts all Chat services in a single process, while preserving the existing modular architecture internally.

Benefits

  • Easier local development and debugging
  • Simpler deployment for small and medium-sized projects
  • Reduced operational complexity
  • Consistent startup experience with OpenIM Server
  • Better support for embedding OpenIM Chat into other applications

Compatibility

The existing multi-process deployment can remain the default for production environments. The single-process mode could be provided as an optional startup mode for development or lightweight deployments.

Additional Notes

This feature would align the startup experience of OpenIM Chat with OpenIM Server and improve the overall developer experience without affecting the current architecture.

Suggested Solution

Introduce an optional single-process startup mode for OpenIM Chat, similar to the implementation already available in OpenIM Server.

Specifically:

  • Add a unified entry point (e.g. cmd/main.go) that initializes and starts all Chat modules within a single process.
  • Keep the existing modular architecture internally, but run the services in-process instead of requiring multiple binaries.
  • Preserve the current multi-process deployment mode for production, making the single-process mode an optional choice for local development, testing, and lightweight deployments.
  • Reuse the existing configuration as much as possible to minimize migration effort and keep the developer experience consistent with OpenIM Server.

This would make OpenIM Chat easier to develop, debug, and deploy while maintaining backward compatibility with the current deployment model.

Additional Information

No response

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by inspecting the existing Chat startup structure and the OpenIM Server unified cmd/main.go entry point mentioned in the issue. Map how Chat modules are currently launched and determine how an optional single-process mode can coexist with the existing deployment. Done means all Chat services can run in one process while the current multi-process mode remains available.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
backend, developer-experience
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.