These forums have been archived and are now read-only.

The new forums are live and can be found at https://forums.eveonline.com/

EVE Technology Lab

 
  • Topic is locked indefinitely.
 

Eve SQL - Hosted EVE database

Author
blue coeur
Chicka Chicka Boom Boom
#1 - 2012-11-22 18:56:39 UTC  |  Edited by: blue coeur
I've been building some web applications for eve and found myself hesitant to import and host the eve database dump for each project. After research and googling It seems there are only a couple community hosted mysql databases but nothing that allows API calls.

So I built one:

  • RESTful w/ JSONp support
  • HTTP Auth
  • Distributed, HA system
  • CDN api endpoints
  • Hosted on AWS
  • 250ms response (tested w/ 250 concurrent connections)


http://evesql.com

This service allows me to query exactly what I need from my web apps and only maintain the eve database in one place. Msg me if you'd like the staging link.

Does anyone know of a service similar to above?
Would this type of service be of interest to anyone else?
Desmont McCallock
#2 - 2012-11-22 19:28:27 UTC
The problem is that no one likes to be dependent from a single provider. What will happen to those who use your service when you decide to pull the plug?
blue coeur
Chicka Chicka Boom Boom
#3 - 2012-11-22 21:21:45 UTC
Desmont McCallock wrote:
The problem is that no one likes to be dependent from a single provider. What will happen to those who use your service when you decide to pull the plug?


Excellent point.

As with using any service, there's always the chance it will no longer exist at some point down the road. As a software designer for a Saas company, I see many saas startups and even established saas services shut down after a period of time. Economics plain and simple.

The advantage I have here over most is my knowledge and experience with the Saas industry, cloud providers, and building a scalable service. Obviously if my hosted service is loosing me money every month, it's more likely I'll shut it down at some point down the road. So the key is building a scalable service that doesn't cost me anything every month.

And that's what I did.

If eve developers do end up wanting to use a service such as mine, then that presents a economics issue. So what I'd like to find out from fellow developers is if said service would be of interest, if so how much is it worth to you, or is it something I should bundle up and open source?
Desmont McCallock
#4 - 2012-11-22 22:16:45 UTC
That kind of service with a single endpoint wouldn't be much of interest imo.
On the other hand, if it's spread out like a CDN (much like EMDR does) then you may stand a chance.
blue coeur
Chicka Chicka Boom Boom
#5 - 2012-11-22 22:49:20 UTC
Desmont McCallock wrote:
That kind of service with a single endpoint

Well now that you bring up the infrastructure, It's not a single endpoint. It's actually a high availability, distributed system. One feature I haven't turned on yet is caching the api endpoints on a cdn (For development purposes, the cdn cache can cause issues). The beauty here is that the eve database is completely static, so I'm able to cache all the api endpoints with long expire times.


Desmont McCallock wrote:
On the other hand, if it's spread out like a CDN (much like EMDR does) then you may stand a chance.


From what I briefly ready, EMDR isn't a CDN, it's a distributed HA service.
fenistil
Federal Navy Academy
Gallente Federation
#6 - 2012-11-24 11:17:07 UTC
I personally would be interested in the service and how you implement it too. It is an insteresting subject.
+1

.

blue coeur
Chicka Chicka Boom Boom
#7 - 2012-11-24 18:54:45 UTC  |  Edited by: blue coeur
This project is built using rails3.2 with MySQL. Each eve database table is manually imported with the table structure having to be made into a migration. I'm staying very strict with the eve naming conventions and primary_key/foreign_key assignments.

Rails has been stripped down to only need the minimal layers for an api service, this has improved response time just a little but mostly reduced the memory overhead.

So from a site that needs to lookup item information by type id, you would do a get call either from the client-side or server-side. Although I built this service with the client-side users in mind.

Get:
http://evedb-dummy-url.com/api/v1/inventory/type/233.json?callback=evedb

This will return the inventory information for 233 in JSON format:

evedb({"basePrice":"4000.0","capacity":0.0,"chanceOfDuplicating":0.07,"description":"Consists of two components: a shell of titanium and a core of iridium atoms suspended in plasma state. Railguns launch the shell directly, while particle blasters pump the plasma into a cyclotron and process the plasma into a bolt that is then fired. ","groupID":85,"iconID":1326,"marketGroupID":106,"mass":0.1,"portionSize":100,"published":1,"raceID":null,"typeID":233,"typeName":"Iridium Charge L","volume":0.025})


I'll work on getting a link up to play with.
blue coeur
Chicka Chicka Boom Boom
#8 - 2012-11-25 07:46:59 UTC
Here's the url http://evesql.com