Need advice about which tool to choose?Ask the StackShare community!
Backend:
- Considering that our main app functionality involves data processing, we chose
Python
as the programming language because it offers many powerful math libraries for data-related tasks. We will useFlask
for the server due to its good integration with Python. We will use a relational database because it has good performance and we are mostly dealing with CSV files that have a fixed structure. We originally choseSQLite
, but after realizing the limitations of file-based databases, we decided to switch toPostgreSQL
, which has better compatibility with our hosting service,Heroku
.
I try to follow an 80/20 distribution when it comes to my choice of tools. This means my stack consists of about 80% software I already know well, but I do allow myself 20% of the stack to explore tech I have less experience with.
The exact ratio is not what’s important here, it’s more the fact that you should lean towards using proven technologies.
I wrote more about this on my blog post on Choosing Boring Technology: https://panelbear.com/blog/boring-tech/
We were looking at several alternative databases that would support following architectural requirements: - very quick prototyping for an unknown domain - ability to support large amounts of data - native ability to replicate and fail over - full stack approach for Node.js development After careful consideration MongoDB came on top, and 3 years later we are still very happy with that decision. Currently we keep almost 2TB of data in our cluster, and start thinking about sharding.
Pros of Hadoop
- Great ecosystem38
- One stack to rule them all11
- Great load balancer4
- Java syntax1
Pros of MySQL
- Sql789
- Free674
- Easy557
- Widely used527
- Open source485
- High availability180
- Cross-platform support158
- Great community103
- Secure77
- Full-text indexing and searching75
- Fast, open, available25
- SSL support14
- Robust13
- Reliable13
- Enterprise Version8
- Easy to set up on all platforms7
- Easy, light, scalable1
- Relational database1
- NoSQL access to JSON data type1
- Sequel Pro (best SQL GUI)1
- Replica Support1
Pros of PostgreSQL
- Relational database755
- High availability506
- Enterprise class database437
- Sql379
- Sql + nosql299
- Great community171
- Easy to setup145
- Heroku129
- Secure by default128
- Postgis111
- Supports Key-Value48
- Great JSON support46
- Cross platform32
- Extensible29
- Replication25
- Triggers24
- Rollback22
- Multiversion concurrency control21
- Open source20
- Heroku Add-on17
- Stable, Simple and Good Performance14
- Powerful13
- Lets be serious, what other SQL DB would you go for?12
- Good documentation9
- Scalable7
- Intelligent optimizer7
- Transactional DDL6
- Modern6
- Reliable6
- One stop solution for all things sql no matter the os5
- Free5
- Relational database with MVCC4
- Full-Text Search3
- Developer friendly3
- Faster Development3
- Excellent source code2
- Great DB for Transactional system or Application2
- Free version1
- Text1
- Open-source1
- search1
- Full-text1
Sign up to add or upvote prosMake informed product decisions
Cons of Hadoop
Cons of MySQL
- Owned by a company with their own agenda13
- Can't roll back schema changes1
Cons of PostgreSQL
- Table/index bloatings9