Giter Club home page Giter Club logo

mmyn's Introduction

Eka: Kokomma o,
     Idiok eyenowong,
     Akaka nso ke efere ekporoko?

Kokomma: Nke be be,
         Ukot atwak esio... Kpong!


Introduction
============
Mmayen (shortened as Mmyn) is an SMPP Application Gateway.

Initial support is on SMPP 3.4 only.

Focus in on:
    1. High system uptime: 
       The system should be generally up. A system crash should be regarded 
       as a major category 1 fault.

    2. High connectivity longetivity: 
       When we open a connection, it should generally stay up. Disconnecting 
       and reconnecting though possible and supported should be regarded as 
       a massive evil.

    3. High transmit throughput per transmitter:
       Each transmitter should be able to perform to close to 99% of its raw
       abilities. As much as possible, the design of the system should impose
       as little overhead on the raw capabilities of the channel.

    4. Ease of scaling out transmitter:
       With each transmitter performing at wicked levels, we should be able to
       easily spin up more transmitters to have exponential wickedness in 
       terms of throughput.

    5. High receive throughput:
       See item 3.

    6. Ease of scaling out receiver 
       See item 4.

    7. Agressive Queing:
       Rx and Tx should be backed by queues.

    8. Queue TTL support:
       Even though queues are employed, we should be able to set a Queue Time
       To Live (TTL). This will allow the system to offer some sort of time
       basic guarantees.

    9. Application latency awareness:
       When TTLs are employed, the application server should be aware of the
       latencies and throughputs of each of the application servers used to
       service Rx requests. These will affect how the TTL is applied to a
       packet at dequeue time. This also helps us to give proper reports on
       who is dragging us backwards.

    10.TTL flexibility:
       Points 8 and 9 above should be easily turned on and off

Building
========
Mmayen is built with rebar. It is conveniently wrapped with a Makefile

First obtain from github:

    $ git clone http://github.com/essiene/mmyn.git

Then run make

    $ make

The Makefile will fetch all the dependencies and then build Mmayen.


Making A Release
================

To run Mmayen, you must make an OTP release:

    $ make release

The release will be located in $PWD/rel/mmyn

mmyn's People

Contributors

essiene avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.