Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Next Centrifugo release won't support multiple projects, if you have any objections - write here #33

Closed
FZambia opened this issue Sep 24, 2015 · 2 comments

Comments

@FZambia
Copy link
Member

FZambia commented Sep 24, 2015

I'll try to describe why I decided to do so.

At moment Centrifugo does not support any sort of sharding and having two project registered can result in denial of two project's real-time features because of one of those projects under heavy load. I have already written about this in docs.

Also this will allow to make a little shift in Centrifugo API philosophy - i.e. API will be not per project but per Centrifugo. This means that Centrifugo can theoretically return stats and metrics via calls to HTTP API. At moment this is semantically incorrect because of multiple project support - i.e. that data must be per project.

Of course it will result in some backwards incompatible changes. Slightly modified configuration options for project settings. And no need to use project name in connect parameters, API calls, token generation etc. I think most of those problems can be quick fixed by using empty string as project name. But some functions will have another signatures in new versions of libraries (i.e. won't accept project name where it was accepted before).

In my opinion this change will open a road to next improvements in Centrifugo which is currently very difficult because of multiple projects support.

@FZambia
Copy link
Member Author

FZambia commented Oct 21, 2015

Release of Centrifugo v1.0.0 is planned on this weekend!

Here is current changelog (something can change, feel free to write your opinion):

  • works with single project only. No more project key. secret the only required configuration option.
  • web interface is now embedded, this means that downloading binary release you get possibility to run Centrifugo web interface just providing --web flag when starting process.
  • when secret set via environment variable CENTRIFUGO_SECRET then configuration file is not required anymore. But when Centrifugo configured via environment variables it's not possible to reload configuration sending HUP signal to process.
  • new stats command to export various stats and metrics over API call.
  • new insecure_api option to turn on insecure HTTP API mode. Read more in docs chapter.
  • minor clean-ups in client protocol. As protocol incapsulated in javascript client library you only need to update it.
  • all supported libraries also got 1.0 versions

How to migrate

  • Use new versions of Centrifugal libraries. Project key not needed in client connection parameters, in client token generation, in HTTP API client initialization.
  • --web is now a boolean flag. Previously it was used to set path to admin web interface. Now it indicates whether or not Centrifugo must serve web interface. To provide path to custom web application directory use --web_path string option.

I.e. before v1 you started Centrifugo like this to use web interface:

centrifugo --config=config.json --web=/path/to/web/app

Now all you need to do is run:

centrifugo --config=config.json --web

And no need to download web interface repository at all! Just run command above and check http://localhost:8000.

If you don't want to use embedded web interface you can still specify path to your own web interface directory:

centrifugo --config=config.json --web --web_path=/path/to/web/app

@FZambia
Copy link
Member Author

FZambia commented Oct 25, 2015

Centrifugo v1.0.0 released

@FZambia FZambia closed this as completed Oct 25, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant