Sammis

Sammis

Recommendations for large eCommerce venture?

I need the communities assistance to make some rather difficult choices.

I have been given the assignment to research the best tools for a very large eCommerce venture.

My number 1. principal is to keep costs way way down. I other words I cannot go and get an off-the-shelf solution; no Oracle, no IBM, Amazon, none of the usual suspects that we would have to pay $$millions for licenses.

So it looks like we are going to have to build it from scratch. So the principles in play now are. Robustness, ease of maintenance, scalability, low cost, no fads, it’s got to last 20 to 30 years, lightening fast web interface, millions of concurrent users, no faults, no down time, minimal moving parts (not too many technology dependencies)

My search brought me to Go, Scala and Elixir and Erlang, COBOL (Yes!, COBOL) Adabase and Natural.


We have to make some choices. So far I am leaning towards

1. Phoenix (web platform) + Elixir (Erlang) (Development language) + NuoDB (scalable, elastic SQL DB)

Ubuntu seems the logical OS.


At another time in my life I would have chosen IBM AIX, because it scales and scales on IBM hardware with DB2, but this is not that time., and it would have cost $$Millions.


Folks of the community.

Am I heading in the right direction. What is your opinion and advise.

Your thoughts and advice would be much appreciated.

Thank you
SammiS

Most Liked

mmmrrr

mmmrrr

Hey Sammis,

before giving any technical advise, or seeking technical advise, I would always recommend to lay out the requirements as precisely as possible.

You state that

Let me put it this way: maybe. But this is most certainly not your real concern right now. Every choice you can make will inavitably have its downsides.

So the real questions are:

  1. Why is money a problem? If you’re going to do business for 20-30 years you need to make millions yourself with this enterprise. So if money is a problem now, developing from scratch is maybe not a smart option.
    (That beeing said: economically it makes sense to keep costs down. Just remember that licensing costs will almost always be lower than development costs if you can get the same system. This is true for almost any part of the world)
  2. What are you up to? Are you a startup? Are you a development department or agency for a company that wants to expand or change its business? Is this a public government sector type of thing, where paying people is not a problem because they are “there anyway”?
    2b) How many people will be working on the project.

Pointing to any particular technology is not doing any good, without answering at least question 2). Because it massively depends on what to optimize for.

That beeing said: if you are sure (and I mean absolutely, rock solid, super dooper, “I have seen the contract” sure) that this project will be very long running you need to optimize for one thing: changeability / refactoring. Don’t hardwire stuff, keep everything as separated as possible. Create clean APIs that stabilize fast and don’t change. Keep the scope of every part of the system as small and focused as humanly possible.

This advice is, I think, universal for large systems and does not depend on any particular technology. Just like: try to introduce as little side effects as possible and only in well defined and understood places.

So, if you can, please give us a little more info about your project :slight_smile:

(Not that I don’t enjoy a good technology discussion but I think this isn’t helping OP as much :wink:)

blatyo

blatyo

Conduit Core Team

I know you mention no off the shelf solutions, but everything you mentioned is way bigger than you’d likely need initially. I’ll point out Shopify Pricing: Find the Right Plan for Your Business - Shopify and BigCommerce Pricing and Plan Information | BigCommerce as two things that don’t cost nearly as much and are likely cheaper than paying a team to build something equivalent.

lpil

lpil

Creator of Gleam

From reading the requirements what jumps out at me if that it is required to last for 30 years, so I would think carefully about what technology is going to last that long.

The Java ecosystem has enough momentum for that, is currently very mature, and is not difficult to hire for, so I would be seriously Kotlin, Scala or Java.

I’ve not come across NuoDB before. It seems to be a niche proprietary database. Given proprietary databases have a habit of disappearing due to funding problems and niche databases have a problem of disappearing due to contributor shortages do you think it’ll be around in 10+ years? You may end up having to maintain an unfamiliar database by yourself, which is a scary idea. I would likely use Postgres or MySQL/MariaDB, both will still be around and supported for that long and both have been proven to usable at scale.

Where Next?

Popular in Questions Top

sergio
In Ruby, I can go: User.find_by(email: "foobar@email.com").update(email: "hello@email.com") How can I do something similar in Elixir? ...
New
mgjohns61585
Could someone help me? I’m making my first elixir program, number guessing game. I can’t figure out how to convert the user’s guess from ...
New
shahryarjb
Hello, I get Persian date from my client and convert it to normal calendar like this: def jalali_string_to_miladi_english_number(persi...
New
vegabook
I’m brand new to Phoenix and I have stripped one of the demo applications to the bone. I just want to get an svg up on the screen. Here i...
New
joeerl
Hello again - after a longish gap I’ve decided I really must dig into Elixir and see what’s been happening here - so I have a few questio...
New
stefanluptak
Hello everybody, usually, I use a 29" ultra-wide monitor for VSCode which can easily accomodate explorer (files panel) + file with code ...
New
itssasanka
Hi all, Trying to get some more clarity over utc_datetime and naive_datetime for Ecto: The documentation above suggests that while ...
New
RisingFromAshes
I’ve read in another post that it may be possible with a router helper - but I couldn’t find an appropriate one, and tbh, I’m still just ...
New
script
If I have a string “1000 cfu/ml” . I want to remove the characters and / and space . So the string is like this "1000" What is the ...
New
jononomo
For some reason my phoenix channels are working for me in my local dev environment, but as soon as I deploy via Docker, I get a 403 error...
New

Other popular topics Top

TunkShif
This post is an instruction guide to help you setup your Neovim for Elixir development from scratch. It includes general information on h...
274 41539 114
New
chrismccord
As promised, the first release candidate of Phoenix 1.3.0 is out! This release focuses on code generators with improved project structure...
New
ovidiubadita
Hey all, I discovered Elixir and I love it. I always wanted to learn a functional programming and I intended to go for Haskell, but afte...
New
jerry
Good day to you all. I have been struggling to get a query involving like and ilike to work. Can anyone assist me on this, please? pro...
New
fayddelight
I tried installing elixir 1.11.2 erlang 23.3.4 via asdf in my zsh shell. Enabled the versions locally and globally. When I list them ...
New
bsollish-terakeet
Credo is smart enough to check for (something like) this: assert length(the_list) == 0 with this response: Checking if an enum is empt...
New
axelson
This post is a wiki (feel free to hit the edit button near the bottom right of this post to add your own changes!) This post collects co...
239 47930 226
New
openscript
Hello! Sorry for this astonishing simple question, but I’m really stuck. I try to set up the intellij-elixir plugin, but I don’t know ho...
New
dogweather
I wrote this comment on r/haskell, and it’s not popular there. :wink: But I think I’m on to something… Haskell reminds me of Java, and e...
New
lanycrost
Hi everyone! I need implement if…else if…else condition from my elixir code, and anymore of this control flow structures not work proper...
New

We're in Beta

About us Mission Statement