jam-cloud/websocket-gateway
Steven Miers 11f60b71e4 VRFS-3242 : Schema and model changes required for band profile functionality.
* Additional attributes for band_type, band_status, concert_count,
add_new_members, play_commitment, touring_option, paid_gigs,
hourly_rate, gig_minimum
* For joined table musician_instruments, remove the hard requirement
that they be joined to a user, rather a “player” that is polymorphic.
* For joined table performance_stamples, remove the hard requirement
that they be joined to a user, rather a “player” that is polymorphic.
* For joined table online_presences, remove the hard requirement that
they be joined to a user, rather a “player” that is polymorphic.
* Change models as appropriate with new attributes and modify
belongs_to / has_many directives as necessary.
* Fix existing usages of user_id to work with polymorphic player_id.
* Fix tests that use user_id
* Add new tests that exercise online_presence, performance_samples, and
instruments that target a band, rather than a user.
2015-05-13 21:06:14 -05:00
..
bin * make dynamic registrations confgurable, in case server crashes again: VRFS-2645 2015-01-23 16:51:59 -06:00
config * make dynamic registrations confgurable, in case server crashes again: VRFS-2645 2015-01-23 16:51:59 -06:00
features merging websocket-gateway into websocket-gateway 2013-09-15 18:07:00 +00:00
lib * VRFS-3065 - permission error name change 2015-04-20 10:42:09 -05:00
log merging websocket-gateway into websocket-gateway 2013-09-15 18:07:00 +00:00
script/package * websocket-gateway GATEWAY_NAME fixes 2014-09-25 20:40:31 -05:00
spec VRFS-3242 : Schema and model changes required for band profile functionality. 2015-05-13 21:06:14 -05:00
.gitignore * VRFS-438 - squirt out BUILD_NUMBER into file and make debian packages reference it when it starts the app so that gem versions can be found 2013-09-16 17:03:26 +00:00
.pg_migrate merging websocket-gateway into websocket-gateway 2013-09-15 18:07:00 +00:00
.ruby-gemset merging websocket-gateway into websocket-gateway 2013-09-15 18:07:00 +00:00
.ruby-version fix warning related to ruby- prefix in .ruby-version files 2013-12-27 16:28:28 -05:00
.simplecov * VRFS-1103 - coverage for all projects. need to figure out how to merge all 2014-02-13 22:11:30 -06:00
Gemfile Add recurly dependency. 2015-02-20 10:40:23 -06:00
Guardfile merging websocket-gateway into websocket-gateway 2013-09-15 18:07:00 +00:00
README.md merging websocket-gateway into websocket-gateway 2013-09-15 18:07:00 +00:00
Rakefile merging websocket-gateway into websocket-gateway 2013-09-15 18:07:00 +00:00
build * intsall to vendor/bundle 2014-02-02 14:03:31 -06:00
jam_websockets.gemspec merging websocket-gateway into websocket-gateway 2013-09-15 18:07:00 +00:00
jenkins * VRFS-1016 2014-01-31 14:25:17 -06:00
migrate.sh merging websocket-gateway into websocket-gateway 2013-09-15 18:07:00 +00:00

README.md

TODO & DESIGN LIMITATIONS

  • !!!! lock up multi-threaded unsafe data structures

  • The rabbitmq connection isn't pooled. Throughput limitation (but could be resolved by just starting more instances of JamWebsocket behind Haproxy)

  • The database connection isn't pooled. Throughput limitation (but could be resolved by just starting more instances of JamWebsocket behind Haproxy)

  • We make just one user topic registration and session registration for all users/sessions. If ever we had 10 of servers, it could be wasteful. It just depends on how fast the bogus messaging can be ignored

  • The database connection is pooled.

  • The user model is stored in memory, meaning periodically it should be reloaded from the database (in case a user was marked inactive and you want them knocked out of the system)

  • The user could easily join to multiple sessions. Currently, though, the ClientContext object only tracks one jam session topic subscription. This is minimial to change.

  • peek logic not implemented on server for protoc messages; this could be done to save cost of deserialization and serialization for session/user directed messages