Differences between a KTable and compacted kafka topics

HI @All What are the differences between a KTable and compacted kafka topics?

A KTable is a construct in Kafka Steams that represents a table (a bit like a table in a database). It has its own local storage on the KStreams node (so wherever you run KStreams the local disk will contain a file that stores the table locally).
KTables also store their data in Kafka for resiliency. So if you lose your KStreams machine it can rebuild state from Kafka. A compacted topic is used for this storage as to rebuild a KTable you only need the most recent entry in the topic for each key.
However compacted topics can be used independently of KTables and are commonly used as a storage primitive, for example offsets and schemas in Kafka/Confluent are both stored in compacted topics.