• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Conejo Architecture
 

Conejo Architecture

on

  • 1,887 views

Abstract notes about my in progress framework

Abstract notes about my in progress framework

Statistics

Views

Total Views
1,887
Views on SlideShare
1,880
Embed Views
7

Actions

Likes
0
Downloads
0
Comments
0

3 Embeds 7

http://www.slideshare.net 5
http://www.lmodules.com 1
http://www.linkedin.com 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • Conejos is a Actor that user a Serializer. The message is sent with Properties. It is responsible for setting up any temporary queue to receive a reply and then send it back to the application. Dispatcher is an actor derived from a rabbit consumer that receives messages. It uses a serializer based on properties to construct case classes and pass it to the Worker Actor. Config is a simple extension of a AbstractConfig to allow the registration of the Worker Actor. It can be eliminated forcing a trait to the Worker. This could be solved scaning the class path for certaing types and registering it to dispacher.

Conejo Architecture Conejo Architecture Presentation Transcript

  • Conejo Architecture and Major Components Abstract notes on Conejo @paulosuzart [email_address]
  • What is it?
    • An AMQP based framework for distributed Scala Actor execution.
    • It is delivered with
      • A RabbitMQ Java API Abstraction for Scala
      • An Actor Server that runs the registered Actors
  • What it is intended to be
    • Simple to implement
    • Fast to run
    • Easy to manage
    • AMQP issues transparent
    • Standalone (with Conejo Server)
    • Embedded (as a Scala lib into your app)
  • Requirements
    • Reliable delivery of messages
      • AMQP with RabbitMQ
    • Work purely – or almost – with Scala actors
      • A simple Trait to extend
    • Minimal and optional configuration/setup for AMQP
      • Most RabbitMQ configurations done by default
    • JSON format for message transfer
    • Auto recovery of failed Actor Servers
  • Architecture Application <<actor>> Conejo RabbitMQ Conejo Server Conejo Server Conejo Server ! !? JSON Content JSON Content Worker Actor Worker Actor Worker Actor ! ! JSON Content !?
  • Major Components Application <<actor>> Conejo <<actor>> Dispatcher <<actor> Worker Any application using Conejo throgh the Conejo Actor Actor runing on client and responsable to request serialization Serializer and send/receive messages to/from predefined Conejo Queues or Reply Queues Runs for eatch Actor Server. This actor is the primary receiver of AMQP Messages. Is responsible for invoking the Serializer and send messages to reply queues The Actor that performs the actual wished logic
  • Major Components <<actor>> Serializer Config Small piece of optional configurations inside the Singleton subclass of the Actor Server Actor responsible to serialize or deserialize byte[] to messages whose types are indicated In AMQP message propertyes.
  • Use cases
    • Async invocations without return value
    • Async invokations with reply in a temporary queue
  • Use case – Async invocations without return value <<actor> Worker rabbitMQ Actor in Queue Conejo Actors Topic Actor Server Application Bind xc.in.K 1 2 <<actor>> Conejo <<actor>> Serializer <<actor>> Dispatcher <<actor>> Serializer Config
    • Conejo sends messages through the topic xcintopic
    • Every Actor Server consumes its own Queue
    • The Queue is bound to xcintopic with the routin key xc.in.K
    • K is the name of the server or an overriden value
  • Use case – Async invocations with reply in a temporary queue <<actor>> Conejo <<actor> Worker rabbitMQ Actor in Queue Temp Reply Queue Conejo Actors Topic Distributed Actor Config Conejo Reply Direct Application <<actor>> Serializer Bind xc.in.K Bind xc.in.R 1 2 3 4 <<actor>> Dispatcher <<actor>> Serializer Config
    • Conejo declares a temporary queue
    • The queue is bound to Direct xcredirect with the queu name as routing key
    • Dispatcher sends replies to Conejo declared temporary queue through xcredirect Direct Exchange
  • Status
    • First steps in
      • Configuration implementation
      • Dispatches implementation
    • Small tests already running using this primitive constructs
    • Not publicly available yet
  • Thanks!