Git Product home page Git Product logo

hydra's People

Contributors

nicknorth avatar northnick avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

mr-miles

hydra's Issues

Handle deserialisation errors better

Currently message deserialisation errors in PubSubByType and Conversations are swallowed quietly, and it would be useful to make them available to the client. They cannot be exposed by OnError on the Observable, as the semantics of Observables means it could return no further messages afterwards. Better to replace, say, Observable by Observable<Notification>, and then the event stream can contain errors intermingled with non-errors. There might be an aesthetic objection that Observable<Notification> should terminate after an error, in which case we could use our own wrapper equivalent of Notification. Seems a shame to reinvent the wheel though.

Note this is a breaking interface change, so Version 2 might be a good time to introduce it.Migration problems could be mitigated by providing an extension method on Observable<Notification> that reproduces existing behaviour by filtering out errors and returning an Observable just like the current one.

Distinguish message sending errors

Errors when sending messages are assumed to be a Hydra server problem, and the sender marks the server as offline. Serialisation errors should be treated differently, causing an error, but not causing the server to be considered as offline.

Allow message attachments

Messages should be treatable with attachments. These would be replicated with the message, but detachable separately.

Make .NET methods async

Make async versions of SaveDoc and GetAttachment. This is simple to do, but most easily written using await, which needs .NET 4.5 or the async targeting pack. Forcing 4.5 on users may not be a good thing.

Memory leak in .NET StdListener

The .NET StdListener uses Observable.Generate to poll repeatedly. However the Rx implementation is recursive and uses a bit more memory to store IDisposables on every poll - see https://rx.codeplex.com/discussions/431558 for discussion. This causes heap use to grow indefinitely.

Experiments suggest that replacing Observable.Generate with the Java ObservableGenerator class eliminates the leak.

Remove deleted messages from poll results

Polling uses _changes, which includes messages deleted by a clean-up process like the Hydra Scavenger Service. There can be a lot of these, so it would be better to filter them out on the server.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.