Skip to content

Commit

Permalink
spelling is really hard
Browse files Browse the repository at this point in the history
  • Loading branch information
evantahler committed Aug 12, 2012
1 parent 7aacbc4 commit 1f4e8e4
Showing 1 changed file with 18 additions and 17 deletions.
35 changes: 18 additions & 17 deletions versions.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,12 @@
## Version 3.0.1

- A project Generator!
-- You can start up a new project in an empty directory with `npm install actionHero && npm run-script actionHero generate`. This will create project structure and copy in some default actions and tasks.
- Only tasks present in your project will be loaded (like actions). Now that there is a genrator which will copy in some defauly actions, loading tasks withing actionHero is not needed.
- Project reoginzation
- remove hredis: This makes the project have less complex C dependanices. You should add it to your project if you want fast redis communication, but it isn't *required*
- This release adds more configurations options to webSockets in the form of `api.configData.webSockets.logLevel` (integer) and `configData.webSockets.settings` (which is an array strings which will be applied to socketIO's 'set' command)
- You can start up a new project in an empty directory with `npm install actionHero && npm run-script actionHero generate`. This will create project structure and copy in some default actions and tasks.
- Only tasks present in your project will be loaded (like actions). Now that there is a generator which will copy in some default actions, loading tasks within actionHero is not needed.
- Project reorganization per the above
- remove hredis from the project
- hredis is awesome, but this makes the project have less complex compiled dependancies. You should add it to your project if you want fast redis communication, but it isn't *required* for actionHero to function
- This release adds more configuration options to webSockets in the form of `api.configData.webSockets.logLevel` (integer) and `configData.webSockets.settings` (which is an array strings which will be applied to socketIO's 'set' command)

## Version 3.0.0

Expand All @@ -33,12 +34,12 @@ Actions

Chat

- new initializer to make chat availalbe to all persistant-socket clients
- new initializer to make chat available to all persistent-socket clients
- new `api.chatRoom` namespace for chat functions (IE: `api.socketServer.socketRoomBroadcast` => `api.chatRoom.socketRoomBroadcast`)

Web Sockets

- socket.io a dependancy of the project
- socket.io a dependency of the project
- socket.io client JS symlikned to /public
- websocket example created
- status counts for webSockets
Expand All @@ -61,7 +62,7 @@ Examples

** Notes **

- cache actions now take miliseconds like everything else.
- cache actions now take milliseconds like everything else.
- you can now have non-expiring cache entires (just pass a null value for expireTimeMS)
- there are no no default periodically-run tasks. Look in `/examples` for the tasks that used to be there and copy them into your own project's /tasks folder. This was done to reduce the 'magic' in the framework. the runTask task still remains, as it was not run periodically.

Expand All @@ -73,12 +74,12 @@ Examples
**Summary:** Bug Fixes & Examples

** Details **
Check the notes for the bug fixes. There are now also more examples in the prject, showing off how you can connect from various enviorments. This also ccoencides with the release of the [actionHeroClient](https://github.com/evantahler/actionHeroNodeClient) NPM package. More coming soon.
Check the notes for the bug fixes. There are now also more examples in the project, showing off how you can connect from various environments. This also coincides with the release of the [actionHeroClient](https://github.com/evantahler/actionHeroNodeClient) NPM package. More coming soon.

** Notes **

- Updates to how socket client requests are tracked to enfore proper message IDs. If you directly used `api.processAction` before, the interface has changed.
- running the test suite will now use a seperate redis db. You can also set this in config.json for your app.
- Updates to how socket client requests are tracked to enforce proper message IDs. If you directly used `api.processAction` before, the interface has changed.
- running the test suite will now use a separate redis db. You can also set this in `config.json` for your app.
- better logic to ensure that tasks are enqueued properly
- cluster members will remove stale tasks they were working on when the app is started (in case of a crash)

Expand All @@ -93,11 +94,11 @@ Bug Fixes

This version realizes the dream of a true cluster for actionHero. There is no longer a need for a master process, and every node in the cluster can work alone or in a group. This release also enables using the node.js cluster module to make the most of your server(s).

*This version is likley to be incompatible with prior versions. Running an actionCluster now requires redis (running a single node does not require redis and is still a pure node.js implementation).*
*This version is likely to be incompatible with prior versions. Running an actionCluster now requires redis (running a single node does not require redis and is still a pure node.js implementation).*

Using a [redis](http://redis.io/) backend, actionHero nodes can now share memory objects and have a common queue for tasks. Philosophically, we have changed from a mesh network to a queue-based network. This means that no longer will every node talk to every other node, but rather all nodes will talk to redis. Now, I know that you are thinking "isn't that bad because it creates a single point of failure?" Normally, the answer is yes, but redis already has mesh networking support! The suggested method of deployment is to setup a redis instance on each server, and they will handle the mesh networking for you.

`api.cache` now works in a shared way if you are part of an actionCluster. All cache actions refer to redis and in this way, all peers can have access to shared ojects. To avoid conflicts, you will have access to 'lastReadAt' as part of `api.cache.load` responses. actionHero will also no longer store its own cache to disc periodically as redis does this already.
`api.cache` now works in a shared way if you are part of an actionCluster. All cache actions refer to redis and in this way, all peers can have access to shared objects. To avoid conflicts, you will have access to 'lastReadAt' as part of `api.cache.load` responses. actionHero will also no longer store its own cache to disc periodically as redis does this already.

The task system also has undergone some major refactoring. All tasks are now stored in a shared queue within redis. All peers will periodically check the queue for unfilled tasks, and drain the queue one at a time. In this manner, you can add more task capacity by spinning up more actionHero nodes which may or may not also handle web/socket traffic. This also means that tasks will not get lost if a node crashes as they will remain in the redis queue until drained. Each peer also has a 'personal' task queue for "all" actions.

Expand All @@ -124,7 +125,7 @@ All methods under the `api.actionCluster` namespace have been removed for simpli
- the entire `actionCluster` namesapace has been removed
- there are new requirements to `config.json` to setup redis
- every node will try to handle requests and process one job pending in the task queue at a time
- shared tasks will be prefered over per-node tasks
- shared tasks will be preferred over per-node tasks
- the 'status' action has some new output types to reflect 'global' stats in comparison to 'local' stats (IE: count of web requests that this node has served vs total)

## Version 1.0.3
Expand Down Expand Up @@ -152,7 +153,7 @@ All methods under the `api.actionCluster` namespace have been removed for simpli
** Details **

* You can now spin up a secure https server along with you http server in action hero. It will work exactly the same as the http server, and you can have both on at the same time with no overhead.
* There are new configuration settins in `config.json` for this below
* There are new configuration settings in `config.json` for this below

Settings for https server:

Expand All @@ -178,9 +179,9 @@ Settings for https server:
* The last message sent by a socket client can now be read by inspecting `connection.lastLine`
* Better error handling if the socket / web port are in use
* Cleanup of the example HTML pages
* HTTP requets will now return serverInformation.currentTime
* HTTP requests will now return serverInformation.currentTime
* The original server (the one with no `configData.actionCluster.startingPeer` will be the only server to run 'any' tasks)
* Other servers will NOT assume the role of runing "any" tasks, but they will keep them in memory until the master server comes back upon a crash.
* Other servers will NOT assume the role of running "any" tasks, but they will keep them in memory until the master server comes back upon a crash.
* Using the node-mime module
* Adding 10 min cache-control to flat files

Expand Down

0 comments on commit 1f4e8e4

Please sign in to comment.