We’ve been seeing many types of software architecture over the past 10 years. We started with monolith applications, switched to micro-services, eventually experiencing the taste of serverless architecture. Those types of architectures mainly relate to web development.
In the recent 3 years, the enormous growth of distributed technologies has allowed us to build decentralized and distributed applications. Data storage can be replaced by a distributed ledger. Authentication/authorization layer can be replaced by cryptography. Sensitive data can be owned by its’ owner. Business logic can be minimalist and transparent.
Today we have a number of projects providing peer to peer communications and solid privacy level. They resolve the challenge of consensus between thousands of participants, as well as deal with multidimensional abstractions like blockchain of blockchains. It’s complicated! :)
You might get a feeling that it is not yet ready. Adoption is low, hash functions have a chance of collisions, cryptography can be attacked by brute-force, the communication channel can be compromised, trusted peers can be hacked… But anyway, it is way better than this.
If you don’t really know which blockchain to use, this may help.
- Solidity (suitable for Ethereum and TRON)
- Web development skills
- Build a Dapp in 20 Minutes
- EOSIO.CDT (Contract Development Toolkit)
- ÐApp Development
- IDE (VS Code + solidity plugin, Remix, Embark)
- Libraries (web3js)
- DevTools (Truffle, Ganache)
- Reference implementations (OpenZeppelin)
- Solidity common patterns (Solidity CRUD, patterns)
- ERCs — Ethereum Improvement Proposals
- Security (Considerations, Security Tools)
- Non-blockchain dapps, take a look at dapps on swarm or Nebula project.
Nice to follow
Hope this helps. Good luck!