Wiki

Clone wiki

hammerhead / The_Architecture

Architecture

Requirements

HTTP Server

Hammerhead, obviously needs an HTTP server to run.

Any web server that supports running Django is fine.

RDBMS

Hammerhead does not relay on any special/proprietary tricks.

Any database that has Django's support is fine.

Web Services

Hammerhead is built with scalability in mind, Therefor it has a vast amount of web services that handle their own domain.

All web services are completely RESTful.

The Messages Web Service

The public API for the message queue and the scheduling system.

The Workload Balancing Web Service

The Workload Balancing Web Service is an optional web service that should be used only if more then one message queue is up and running. The web service's API is exactly the same as the Messages Web Service API but in addition it provides a mechanism to register and unregister one or multiple message queues.

No actuall business logic is being done here except the registration/unregistration of message queues.

Any other work is delegated to the least busy message queue.

The web service is considered as a public web service.

Deprecation Policy

  1. The method will report that it is deprecated and the client will be warned, however the method will still work correctly.
  2. The method will report that it is obsolete and the client will be warned, however the method will still work correctly.
  3. The method will report that it is obsolete and the client will be warned, however the method might not work correctly.
  4. The method will report that it is obsolete and the client will receive a 410 Gone status code.
The Message Queue

The message queue is used to execute any task synchronously or asynchronously. One or more message queues may exist at any given time, although if more than one message queue may exist the Workload Balancing Web Service must be running.

All the data access is completely proxied to the data services in order to enable fetching messages from other sources.

The web service is considered as a public web service only if the Workload Balancing Web Service is unavailable, otherwise it is considered public only to the Workload Balancing Web Service.

Deprecation Policy

  1. The method will report that it is deprecated and the client will be warned, however the method will still work correctly.
  2. The method will report that it is obsolete and the client will be warned, however the method will still work correctly.
  3. The method will report that it is obsolete and the client will be warned, however the method might not work correctly.
  4. The method will report that it is obsolete and the client will receive a 410 Gone status code.
The Message Data Service

The Message Data Service is a web service that accesses it's proxy to perform CRUD operations. All data formatting is done here, however no business logic should be performed.

The data service is considered as a public web service only to the Message Queue(s) that own him.

Deprecation Policy

  1. The method will report that it is deprecated and the client will be warned, however the method will still work correctly.
  2. The method will report that it is obsolete and the client will be warned, however the method will still work correctly.
  3. The method will report that it is obsolete and the client will receive a 410 Gone status code.
  4. The method will be completely removed, thus rendering a 404 Not Found status code.
The Message Proxy Service

The Message Proxy Service implements the actual CRUD operations against the database or another web service.

The proxy service is considered as a public web service only to the Message Data Service.

Deprecation Policy

  1. The method will report that it is deprecated and the client will be warned, however the method will still work correctly.
  2. The method will report that it is obsolete and the client will be warned, however the method will still work correctly.
  3. The method will be completely removed, thus rendering a 404 Not Found status code.

The Scheduling Web Service

The Scheduling Web Service is used by the message queue to execute commands at a specific or a recurring time and/or date.

A message must be published on a message queue

The Transactions Web Service

TBD

The Posts Web Service

The public API for the blog's posts and their related entities.

All the data access is completely proxied to the data services in order to enable fetching posts from other sources.

All business logic is being done here and then passed to the HTTP server for further processing.

The web service is considered as a public web service.

Deprecation Policy

  1. The method will report that it is deprecated and the client will be warned, however the method will still work correctly.
  2. The method will report that it is obsolete and the client will be warned, however the method will still work correctly.
  3. The method will report that it is obsolete and the client will be warned, however the method might not work correctly.
  4. The method will report that it is obsolete and the client will receive a 410 Gone status code.
The Post Data Service

The Post Data Service is a web service that accesses it's proxy to perform CRUD operations. All data formatting is done here, however no business logic should be performed.

The data service is considered as a public web service only to the Posts Web Service.

Deprecation Policy

  1. The method will report that it is deprecated and the client will be warned, however the method will still work correctly.
  2. The method will report that it is obsolete and the client will be warned, however the method will still work correctly.
  3. The method will report that it is obsolete and the client will receive a 410 Gone status code.
  4. The method will be completely removed, thus rendering a 404 Not Found status code.
The Post Proxy Service

The Post Proxy Service implements the actual CRUD operations against the database or another web service.

The proxy service is considered as a public web service only to the Post Data Service.

Deprecation Policy

  1. The method will report that it is deprecated and the client will be warned, however the method will still work correctly.
  2. The method will report that it is obsolete and the client will be warned, however the method will still work correctly.
  3. The method will be completely removed, thus rendering a 404 Not Found status code.
The Tag Data Service

The Tag Data Service is a web service that accesses it's proxy to perform CRUD operations. All data formatting is done here, however no business logic should be performed.

The data service is considered as a public web service only to the Posts Web Service.

Deprecation Policy

  1. The method will report that it is deprecated and the client will be warned, however the method will still work correctly.
  2. The method will report that it is obsolete and the client will be warned, however the method will still work correctly.
  3. The method will report that it is obsolete and the client will receive a 410 Gone status code.
  4. The method will be completely removed, thus rendering a 404 Not Found status code.
The Tag Proxy Service

The Tag Proxy Service implements the actual CRUD operations against the database or another web service.

The proxy service is considered as a public web service only to the Post Data Service.

Deprecation Policy

  1. The method will report that it is deprecated and the client will be warned, however the method will still work correctly.
  2. The method will report that it is obsolete and the client will be warned, however the method will still work correctly.
  3. The method will be completely removed, thus rendering a 404 Not Found status code.
The Comment Data Service

The Comment Data Service is a web service that accesses it's proxy to perform CRUD operations. All data formatting is done here, however no business logic should be performed.

The data service is considered as a public web service only to the Posts Web Service.

Deprecation Policy

  1. The method will report that it is deprecated and the client will be warned, however the method will still work correctly.
  2. The method will report that it is obsolete and the client will be warned, however the method will still work correctly.
  3. The method will report that it is obsolete and the client will receive a 410 Gone status code.
  4. The method will be completely removed, thus rendering a 404 Not Found status code.
The Comment Proxy Service

The Comment Proxy Service implements the actual CRUD operations against the database or another web service.

The proxy service is considered as a public web service only to the Post Data Service.

Deprecation Policy

  1. The method will report that it is deprecated and the client will be warned, however the method will still work correctly.
  2. The method will report that it is obsolete and the client will be warned, however the method will still work correctly.
  3. The method will be completely removed, thus rendering a 404 Not Found status code.

Mind Map

The Architecture Mind Map

The Milestone

Milestone Architecture:

  • #2 Document how the transactions web service relates to the whole system (open)
  • #1 Create an architecture mind map (open)
  • #3 Document how the messages web service relates to the whole system (resolved)

Updated