-
Notifications
You must be signed in to change notification settings - Fork 5
essiene/mmyn
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
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
About
An Erlang SMPP 3.4 Application gateway
Resources
Stars
Watchers
Forks
Packages 0
No packages published