Sui and Aptos both descend from Facebook's Diem project. Both use Move, a resource-oriented language originally designed for global-scale payments. They diverged on execution: Sui pushes object-centric parallel execution, Aptos hews closer to EVM-style account-based but with Block-STM for parallelism.
Move: resources, not references
In Solidity, a token balance is a number inside a mapping. Anyone can accidentally reset it, double-count it, or forget a decrement. In Move, an NFT is a resource type. The compiler enforces that resources cannot be duplicated, dropped without explicit handling, or accessed from the wrong context. Whole classes of bugs (reentrancy, integer overflow in balances) become uncompilable.
Sui's object model
Sui does not have a global state root. Instead, each object (NFT, coin, user profile) is a self-contained thing with an owner and version. Transactions that touch different objects can execute fully in parallel because they cannot interfere. The only slow transactions are those that touch a shared object (like an AMM pool), which use Narwhal-Bullshark consensus to order.
Aptos's Block-STM
Aptos keeps a more familiar account model but uses software transactional memory to execute optimistically in parallel. Conflicts get rolled back and retried. Throughput scales with core count.
Real numbers
Sui hits 100k+ TPS in benchmarks. Aptos regularly benchmarks over 160k TPS. In production, both settle in the low single-digit-thousands of real TPS most of the time, but the ceiling matters when a market moment hits.
What this means for you
Better safety guarantees at the language level. Cheaper and faster transactions in the good case. Smaller dev ecosystems today (Move is a niche language), so fewer battle-tested contracts, fewer audit firms comfortable with it, thinner tooling. If you're deploying a novel primitive, Move might be the safest place. If you need composability with the biggest DeFi stack, it isn't there yet.
Koinlytics