Giter VIP home page Giter VIP logo

fibry's People

Contributors

denizt avatar lucav76 avatar s-soroosh 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  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  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  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  avatar  avatar  avatar

fibry's Issues

any detail documents or wiki?

thanks for your work!
I want to learn this code deeply, do you have any more detailed documents, or what should I read to learn the actor concurrency model?
hope your replay, thanks

(sorry for my poor English:) )

how to run distributed examples?

There are Alice and Bob class in examples/distributed/,how to run it?
It seems that Alice and Bob main() function will not run enter loop, it will exit immediately.
Thank you. @lucav76

syncronized blocks how to do

hi i have a question :
Suppose i use a complex application ising many libraries ad suppose i call a function inside a fiber callback where there is a syncronized block (this function is inside a external dependecy).
My question is
in this case syncronized block coud be a bottleneck using fibers because it uses continualy mutual lock when is not necessary. In addition if i use many fibers in a unique resources i have to add locks for fibers . It is correct?

Fibers strategy doesn't work for embeddedHttpServer

The simple http server code given in the example:

Stereotypes.def.embeddedHttpServer(8080, new Stereotypes.HttpStringWorker("/", ex -> "Hello world!"));

works, but if I change def to fibers, it doesn't work. The client connects, but no response is received from the server.

Tested on latest loom EA build: 16-loom+4-56

Using Fibry to build Kafka actor system

Hi Luca,

Thanks for this wonderful actor library.
I am trying to use this library to build a lightweight Kafka actor system akin Alpakka Kafka.
This actor system would comprise of following three things:

  • a kafka consumer consuming messages from some topic
  • a kafka record processing fn which would produce record to be published to another topic
  • a producer for publishing processed record to another topic

Apart from above, I would like to add the functionality such that:

  • Kafka consumer poll() is called in a infinte loop (till the Kafka consumer is shutdown)
  • after poll() method call reads records from Kafka topic, pause() method is called on Kafka consumer instance.
    • This would allow kafka rrecord processor to process records in its own time. This is especially vital if processing logic takes time (e.g. call to external service, retrial with delay due to transient failure). poll() after pause() keeps consumer group alive with Kafka brokers and they do not trigger a rebalance of the consumer group.
  • Once record processor is done, it would send processed kafka records to be published to the publisher. it would then signal Kafka consumer to commit offset and fetch a new set of records from topic.
  • Once Kafka consumer receives this signal/message,
    • commitSync()(or commitAsync()) would be called on Kafka consumer for successfully processed records
    • resume() method would be called on Kafka consumer followed by poll() which would fetch records.
  • Once recently fetched records are sent to record processor, pause() method is called on Kafka consumer instance again.

I have tested Alpakka Kafka Java DSL. It abstracts pause() and resume() in its DSL
While it works great and is functional, the code is hard to understand especially for people unaware of various Scala Functional interfaces (e.g. Creator). I also have to pull in org.scala-lang/scala-library apart from Alpakka kafka dependencies.

I would greatly appreciate some pointers on structuring above as a ActorSystem using Fibry and actors types to be used.

Stability?

Hi,

In the Readme, you clearly mention that Fibry is still a WIP, but still, would like to know how stable it really is?

We are trying out Fibry and seeing some issues when we run tests with 1500+ concurrent users, using https://locust.io/
(On normal JDK, no Loom).

We are still debugging the issues, which could be in on our code FWIW, but wanted to check with you in parallel.

Perhaps it might be a good idea to run load tests in CI. We did it recently for our project, so if you are interested, I could submit a PR for that.

cheers,
HRJ

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.