[FEATURE REQUEST] Support Single-Process Startup for OpenIM Chat
Nobody has claimed this yet.
- 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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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