Hello Piotr,
1.) Yes, you can use partitions for topics. I have personally used 3 partitions for all topics by default and then more than that for highly used topics like MCP & MCL topics which partitions up to 16. The number of partitions highly depends on your use-case and the level of horizontal scaling you require per consumer.
2.) This is standard Kafka so you should use 1 consumer per partition for the most processing speed. This requires more resources for your deployment. It’s a balancing act, if you are ok with 1 consumer handling multiple partitions. I.e: Kafka lag in a topic not increasing then I would suggest having 1 consumer deal with as many partitions as possible to reduce operational costs. DataHub uses dedicated consumer groups for each topic. No single consumer handles messages from different topics. I would suggest not changing this.
3.) DataHub merges the data from your metadata events into a single document in it’s various data stores (ElasticSearch & SQL respectively). If they are disjoint you are ok. By disjoint I mean that message M1 and M2 update different sections of an entity or aspect. If they modify the same thing then the last to arrive wins.
Note however, that since you have Kafka topics you can work with retention time to serve as a buffer of work to be processed. This means you could use kafka connect or something similar to move your events from the old topic to the new one. See this tutorial from confluent:
https://developer.confluent.io/tutorials/change-topic-partitions-replicas/ksql.html