Series: Creating Durable PHP
-
Building DPHP: What is it?
Durable PHP is a framework inspired by Akka, Durable Functions, and Dapr, designed to simplify building complex software and enhance testability. It introduces three main components: Activities, Orchestrations, and Entities. Activities handle side effects and are stateless; Orchestrations manage event-sourced code execution, providing linearity despite non-linear event sequences; Entities maintain core application state and behavior,…
-
Building DPHP: Event Sourcing
From the beginning, I knew Event Sourcing would be a big part of Durable PHP, and I learned from several Event Sourced projects I’ve built or worked on over the years. Specifically, I knew what issues any project would have to deal with, and I wanted to create a framework where none of those issues…
-
Building DPHP: Distributed Locks
Durable PHP is an evolving framework designed for creating complex, scalable code, currently exploring distributed locking mechanisms. It facilitates locking multiple entities in a single operation, which poses significant deadlock risks. By adhering to rules like deterministic lock ordering and mandating lock release on orchestration termination, most deadlocks are preventable. The developer also discusses past…
-
Building DPHP: Authz and Ownership
Durable PHP is an evolving framework intended for writing scalable, complex code, currently focusing on advanced authorization concepts like fine-grain resource interactions including orchestration and entity management. It provides strict user-resource interaction rules enforced by the system’s infrastructure, enhancing security by limiting access based on ownership and permissions. Special provisions for admin roles allow flexible,…