Skip to content

Instantly share code, notes, and snippets.

@baio
Last active December 21, 2015 04:29
Show Gist options
  • Save baio/6249525 to your computer and use it in GitHub Desktop.
Save baio/6249525 to your computer and use it in GitHub Desktop.
{
"title": "qlanir.new",
"visbility": "public"
}

##Qlanir service scheme.

qlanir scheme

link

  1. Client application. This is web based client.
  2. Qlanir.Service - This is service from form where client retrieve / update data.
  3. Qlanir.App - This service which serves html assets (html, js and so on)

UI of the client are created on the base of the static html files (knockoutjs data binding) and data retrieved from Qlanir.Service.

How qlanir.service work, when user request list of people.

  1. PeopleContoller got request from client in GetAll action
  2. GetAll action invoke Dom.IPeople.GetAll method
  3. Dom.IPeople.GetAll dispatch this request to es-service (5)
  4. es-service retrieves data from Elastic Search and returns them to qlanir.service

How qlanir.service work, when user create person.

  1. PeopleContoller got request from client in Create action
  2. Create action invoke Dom.IPeople.Created method
  3. Dom.IPeople.Create - creates new record in SQL server, then send the object to the rabbitmq queue.
  4. es-queue-reader (6) read this object from the queue, then convert it to an appropriate elastic search document, then store it.

For update person service works similarly.

Admin could invoke workers.rabbitmqPush service (4) to sync data from SQL server and elastic search service in which case all data from SQL server is read and when dispatched to rabbitmq queue. After this procedure is the same as for create routine.

##Service needed for qlanir app

  1. Qlanir.Service
  2. Qlanir.App
  3. SQL Data Base
  4. Elastic search
  5. Rabbitmq
  6. es-queue-reader service
  7. es-service
  8. rabbitmqPusher
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment