Our Projects
A showcase of our work.
Intro
In regular APIs, almost type of APIs are request/response fashion. That isn't matched with realtime system and bulk of endpoint is big problem when system go to bigger.
Phoenix General API(GenAPI) is a new way & interactive api that support for modern system. That reduce time to develop & deploy product. Also supported to scale in big system.
GenAPI library is build on top of Phoenix Channel from Phoenix framework.
Concept
In initial phase, GenAPI using regular HTTP for authenticate & get some arguments from query params then convert connection to websocket for save bandwidth & reduce CPU resource. In this phase GenAPI work like Phoenix Channel.
In working phase, client & server can exchange data. Client can get data from server in request/response type or server can active push data to client without any request from client.
APIs in GenAPI are dynamic, system can add or remove in any time. APIs are automatic pull from service nodes (where api will get target data).
GenAPI supports three call types: Sync call, Async call and Stream call.
features of GenAPI
GenAPI is designed for dynamic cluster for Elixir ecosystem.
Support add/remove API in runtime. No need to update API gateway in runtime.
Support add and remove service nodes in runtime. A services with worker nodes of that can easy add to system. No complex task for both dev & deployment environment.
Support for scaling in/out with some load balancing algorithms like: round robin, partitioning by hash order, random selection. Also support sticky node for keep route a client request to a target node.
We have published the library people can reach library at Hex.pm.