Greetings,

I am hoping for some design advice? I am new to Akka and don’t want to 
start out on the wrong foot.

At my day job we have a “Rates Engine”. It computes the current Rate for a 
particular User request.

It is a high volume/low latency system. And currently it lives within a 
Java Servlet Engine (jetty).

 

This is how it works – from 30000 ft :


Foreground:


   1. User X requests a Rate (current price) for Product Y.  
   2. The request is routed to “Shard P” based on Y.
   3. The Rate is computed based on the cached RateInfo (essentially, a 
   concurrent HashMap) for Y, found in Shard P. The computation is relatively 
   expensive CPU-wise.
   4. The Rate is returned to User X. 

Background:

   1. The system listens to “Rate change events” for all Products.
   2. Rate changes are read and are aggregated over some period of time. 
   3. Periodically, the appropriate, cached RateInfo is updated as 
   required, in the appropriate Shard 

Simple. And it works well.

 

Except the system relies on static host bindings. The system is showing its 
age. The synchronous HTTP/S is relatively expensive.
Moreover, we are moving all of this to AWS.

So, since we have to refactor anyway, we decided to look at better ways.
And Akka’s clustering, sharding, and akka-http are all quite appealing.

So my question. How would y’all model the Actors/Messages in this system?

The things I find most puzzling are: 

   - The “single threaded illusion” and how this relates to the Rates 
   computation. Clearly that must happen in parallel?
   - How does one cleanly share the cached RateInfo across the Actors?

Sorry if these questions are too broad. I am a total newbie.
I am looking to start a POC, and need a place to begin.

Thanks much,
-- Chris 

-- 
>>>>>>>>>>      Read the docs: http://akka.io/docs/
>>>>>>>>>>      Check the FAQ: 
>>>>>>>>>> http://doc.akka.io/docs/akka/current/additional/faq.html
>>>>>>>>>>      Search the archives: https://groups.google.com/group/akka-user
--- 
You received this message because you are subscribed to the Google Groups "Akka 
User List" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/akka-user.
For more options, visit https://groups.google.com/d/optout.

Reply via email to