For distributed usage, we need a way of correctly having distributed schema. Redesign to support `Applying` schema. * [x] Applyer Interfaces * [ ] Schema Serialization. * [ ] distributed schema applyer