Slony is trigger based, and highly configurable. Yes - according to the documentation here .
DDL changes can be applied directly on a node through an application
such as psql. The DDL changes will not be replicated by Slony-I and
therefore must be manually applied to every relevant node. The
following points should be kept in mind when applying DDL changes
directly.
Regarding pros/cons. Our team was facing the same kind of problems (clustering solution for High Availability, IOPS off load) a while ago and after investigating/testing a few of them we ended up with just Streaming Replication. - Simple to setup/maintain, read-off loading on relicas.
Multi-tenancy (Slony cannot split postgres schemas across different nodes), heavy usage of triggers in our application backend, indexes with extensions (cube, pg_trgm, cube, earthdistance and frequent DDL changes made it impossible to use Slony for us. In other words - you should understand your application and goals in order to choose right solution.
For sharding data - PostgresXL is definitely worth attention.We also tried it! but it didn't work out for us as it does not support all types of indexes we are using :(