Coder Social home page Coder Social logo

danielshaya / reactivejournal Goto Github PK

View Code? Open in Web Editor NEW
27.0 5.0 5.0 500 KB

ReactiveJournal a journalling facility for Reactive Streams. Intended for testing, remote connections and effective handling of back pressure

License: Apache License 2.0

Java 100.00%
rxjava chronicle java journal memory-mapped

reactivejournal's People

Contributors

danielshaya avatar simonbasle avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

reactivejournal's Issues

Limit the destruction potential of `RxJournal#cleanCache`

This currently deletes the whole content of the RxJournal folder, and the folder itself.
IMHO it is too easy to create an RxJournal pointing to an existing folder and then obliterate it with that method. To make this scenario less likely, several steps can be taken:

  • better document the RxJournal constructor and clearCache method to indicate it destroys the directory
  • limit the clearCache to deleting files inside the directory (and not subdirectories nor the directory itself)
  • limit the deletion of files to *.cq4 files, aka only delete binary files from ChronicleQueue
  • maybe use the given directory as a "base directory for temporary files" and create a dedicated subdir instead of using it as is. That subdir would then be the only one obliterated.

Design Point: Replay as Observable

Continuing the discussion from twitter:

I assume the journal acts as an unbounded buffer that stores items on disk, thus when replaying it can read elements from this disk buffer on demand, supporting backpressure naturally.

The problem I see with the current setup is that unless one consumes the journal directly with a Consumer, it can run into backpressure problems again caused by the replay itself. For example, applying observeOn would trigger a replay to flood the internal buffer of Observable.observeOn thus the backpressure problem is back.

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.