It's declarative, and can scale up to quite complex requirements. But the best things is that it scales down.