Quarkus outbox extension should use custom entity class for customization [DBZ-4587]
- Dominant language
- HTML
- Stars
- 6
- Forks
- 8
- Avg merge
- 2d 19h
- Merged PRs (30d)
- 1
Description
Migrated from [DBZ-4587](https://issues.redhat.com/browse/DBZ-4587)
The structure of the outbox table is currently configured by a range of [configuration properties|https://debezium.io/documentation/reference/stable/integrations/outbox.html#_build_time_configuration_options]. As of DBZ-4317, this was further built out by allowing for additional custom fields/columns to be configured. This is becoming a bit unwieldy, and a more Java-based way of configuring that entity is desirable. As per [~ccranfor@redhat.com], we could have this:
{quote}
* Default outbox entities get contributed without the need for any user configuration or entity mappings at all.
* Users could extend the default outbox entities and add only the extra bits, think of their custom outbox entity mapped as @Entity where-as the default outbox implementation is mapped using @MappedSuperclass.
* Users could supply their own outbox entity without extending the supplied entity if they want full 100% control over the mapping, using an @Entity.
{quote}
As part of this rework we should also re-consider how any additional properties are to be provided in {{ExportedEvent}} implementations. Instead of exposing them via a map, we could support retrieval from getters corresponding to the configured layout of the outbox event entity.
Contributor guide
Assessment
This issue has not been assessed yet.