Find Jobs
Hire Freelancers

Distributed Workers with Akka and Scala

$30-250 USD

Completed
Posted over 7 years ago

$30-250 USD

Paid on delivery
I have a small local network consisting of one personal computer and two Raspberry Pi's. I would like to distribute two types of work across this network at the same time to be worked on in parallel. 1) Calculate the first 1000 numbers of the Fibonacci Sequence 2) Find all Prime numbers between 1 and 1000 The Front-end should be emulated where each type of work is produced via a Work Producer that submits a job to the Master that in turn sends a Worker Request to all Work Provisioners. It is then up to each Work Provisioner to provide a Worker of the requested type IF the resources on the node allow it. If there aren't enough resources to offer a new task of that type, then the Master must wait until a node is ready. In this scheme, work is not pushed to the workers. Instead, the Workers ask for it. When the Worker receives work, it spawns a future to complete the work so that it can remain responsive to the Master. This pattern must be developed with all the proper message passing. For example, between the Master and Worker there should be messages that include "Work Done", "Do This Work", "Work Complete", "Spawn Work", etc. and code for how to handle those messages. I imagine the Work Producer and Master running on my personal computer while the Work Provisioners and actual Workers run on each of my Raspberry Pi's. This solution must be scalable so that I can add more Raspberry Pi's to increase performance. I require the ability to monitor the load of the Master and each of the Worker Nodes. I also require the ability to push updates to the Fibonacci and Prime Finder workers while running. In other words, I do not want to bring down the system each time I have to make a code change. I am new to Akka and Scala and therefore cannot articulate fully what I intend. Please see "Required Reading" below for a better understanding of what I want. It is reasonable to only use one Master for this project, therefore a load balancer for the Masters is not needed, just the Worker Nodes. Required Reading: [login to view URL] [login to view URL] [login to view URL] Please use this as a starting point if it saves you time, and me money. [login to view URL] I am looking for competitively priced bids with proposals that demonstrate mastery of the above concepts, as well as clear communication skills. I will not accept bids without proposals.
Project ID: 11234133

About the project

6 proposals
Remote project
Active 8 yrs ago

Looking to make some money?

Benefits of bidding on Freelancer

Set your budget and timeframe
Get paid for your work
Outline your proposal
It's free to sign up and bid on jobs
Awarded to:
User Avatar
Hi I think what you are talking about here is creating an akka cluster with a single master/guardian which is fine in this case when the number of actors is relatively small. New nodes can be added to the cluster and workload can be balanced/routed using a dispatcher which may be based on things like smallest mailbox for example or the adaptive load balancing strategy implemented in the metrics extension. There are a number of ways to get metrics from builtin cluster metrics extension to 3rd party solutions or even running Kafka queue along side to collate individual actor metrics depending on the level of detail you want. Feel free to contact me if you have any questions. Regards Marty
$250 USD in 4 days
0.0 (0 reviews)
0.0
0.0
6 freelancers are bidding on average $285 USD for this job
User Avatar
This job was posted before, right? As i said i have similar system done before. Its based on Akka remote. Front-end on Play framework. Master actor has Spray http Rest service with all needed information about clients. So any frontend can be used to display information. Master actor didnt know anything about clients untill they send Register message. On client there is configuration file with client name and server ip. So it is scalable. I use postgres db to store information about clients and their paths. But in this case it is not neccessary so we can avoid using database at all.
$333 USD in 14 days
5.0 (6 reviews)
4.0
4.0
User Avatar
Hi, My name is pallab. I would like to build the application you are asking for. Your requirements are mostly clear except the part where you ask for the ability to make changes to the workers without bringing the system down. Well it is both possible and impossible based on what you are actually asking. If you want to change the internal state of an worker, it's possible to do so live. But say, you want to add a new kind of worker, ex: factorial calculator it is not possible to do so as the Jvm doesn't do hot code reload. Apart from this I have experience of building two large scale production systems on Akka and Scala. One system uses the pull pattern for hight fault tolerance. The other uses the push pattern due to strict performance SLAs. I would like to use my experiences to help you. Let me know what you think
$222 USD in 7 days
0.0 (0 reviews)
0.0
0.0
User Avatar
Hello. I have experience with Scala and Akka. The only thing I do not understand is how you want to organize a program debugging? I look forward to your response.
$144 USD in 14 days
0.0 (0 reviews)
0.0
0.0

About the client

Flag of UNITED STATES
Rochester Hills, MI, United States
5.0
2
Payment method verified
Member since May 10, 2014

Client Verification

Thanks! We’ve emailed you a link to claim your free credit.
Something went wrong while sending your email. Please try again.
Registered Users Total Jobs Posted
Freelancer ® is a registered Trademark of Freelancer Technology Pty Limited (ACN 142 189 759)
Copyright © 2024 Freelancer Technology Pty Limited (ACN 142 189 759)
Loading preview
Permission granted for Geolocation.
Your login session has expired and you have been logged out. Please log in again.