Market, Trade and Industry Manager for EVE Online
Switch branches/tags
Nothing to show
Latest commit 4f8b27b Jul 30, 2017 @zweizeichen zweizeichen ‚Initial`commit 🚀
Permalink
Failed to load latest commit information.
43.png ‚Initial`commit 🚀 Jul 30, 2017
LICENSE ‚Initial`commit 🚀 Jul 30, 2017
README.md ‚Initial`commit 🚀 Jul 30, 2017
architecture.png ‚Initial`commit 🚀 Jul 30, 2017

README.md

logo 43
Website | News | About | Slack

element43

Element43 is a free and open web application providing market data for players of the MMORPG EVE Online. This includes the near real-time collection and processing of order book data of the entire game's economy as well as the calculation of various metrics for analytics based on historic price data. Data can be accessed via a modern web-based UI or a simple HTTP API serving JSON. The application's current backend is split into multiple modular components/services implemented in a variety of languages. Builds are executed automatically and the whole application can be deployed as a collection of Docker containers. Work on element43 was started by a small group of developers spread all over the globe in summer 2012. More info can be found on the project's 'about' page.

Components

This repo serves as the entry point into element43's infrastructure. The components listed here are under active development and serve as the application's core. Follow the links in the first column to access the component's code and documentation. Until we provide an updated version of our development environment and the getting started guide, just ping us on Slack if you have any questions. Running individual components is a matter of executing a Docker container configured as outlined in the individual service's docs.


architecture

A simplified diagram of element43's architecture excluding external APIs.


CI Status Container Image Language Description
market-streamer Build Status Docker Image Go Fetches market data from ESI, converts it into UUDIF and streams it via ZMQ. Drop-in replacement for EMDR.
emdr-to-nsq Build Status Docker Image Go Takes market data from ZMQ stream, performs deduplication and pushes data onto a NSQ-Queue
order-server Build Status Docker Image Go Stores order info from NSQ in Postgres DB and provides data as JSON via HTTP
static-data Build Status Docker Image Go Proxies and caches batch-calls to various in-game location APIs (1st/3rd party) and provides a uniform data format via API
top-stations Build Status Docker Image Python 3 Generates metrics for individual station's markets using data from order-server's API hourly
market-stats Build Status Docker Image Go Generates price/volume statistics for the entire economy every night. Data is accessible in JSON format.
Frontend JavaScript Element43's SPA frontend based on VueJS/NuxtJS. Not yet open-sourced.

Legacy Components

These are legacy components of the application's older iterations which no longer are under active development. They were superseeded by the components listed above.

CI Status Container Image Language Description
element43-django - - Python 2 / Web Legacy monolithic web application based on Django, switched to componentized structure due to reasons outlined here. Legacy docs can be found here.
node-43 Build Status - JavaScript The Django application's market data ingestion service. Takes data from EMDR and stores it in Postgres DB. Worked nicely, however integration of data/services via DB generates tight coupling between applications.
vagrant-element43 - - Vagrant/Ansible A dev environment for the Django-based Element43 made with Vagrant and Ansible for getting started fast. Now everything is based on Docker and even faster.
search43 Build Status Docker Image Python 3 A simple live-search API for Element43/EVE. Replaced by ESI's official endpoint.
emdr_consumer Build Status Docker Image Elixir A market data consumer similar to emdr-to-nsq written in Elixir. Rewritten in Go because of library ecosystem and resource consumption.
orders Build Status Docker Image Elixir A prototype of a market data storage backend similar to order-server written in Elixir.
static_data Build Status Docker Image Elixir A prototype of a static data proxy similar to static-data written in Elixir.
crest Build Status - Elixir A WIP Elixir client library for the now deprecated CREST API.
elixir-build-base Build Status Docker Image Docker Base container image for Elixir-based builds. Not needed anymore.