Comparison

Protean and the alternatives

Serious frameworks for domain-driven, CQRS, and event-sourced systems have existed for years, in other languages. Java has Axon. .NET has Marten, Eventuous, and Wolverine. PHP has Ecotone. Python has had no equivalent, and that gap is the one Protean fills.

ProteanPythonAxonJavaMarten.NETEventuous.NETEcotonePHP
Domain model as data (IR) YesNoNoNoNo
Always-valid invariants Automatic, four layersManualManualManualManual
Progressive DDD to CQRS to ES Full, additiveCQRS and ES firstDocument and ESES-focusedCQRS and ES
Built-in async server Yes, open sourceCommercial (Axon Server)NoNoPartial
Startup validation ComprehensivePartialMinimalMinimalMinimal
Commercial dependency for core NoneAxon ServerNoneNoneNone

Where the others lead

Axon and Marten are mature and battle-tested, with years of production use and large ecosystems around them. Protean is younger and pre-1.0. If your system runs on the JVM or on .NET, those are strong, proven choices, and the honest answer is to use them. Protean does not compete on the JVM or in .NET, and it does not try to.

What Protean does differently

Read the whitepaper → Get started