Known differences between dbus1 and kdbus:

- NameAcquired/NameLost is gone entirely on kdbus backends if
  libsystemd is used. It is still added in by systemd-bus-proxyd
  for old dbus1 clients, and it is available if libsystemd is used
  against the classic dbus1 daemon. If you want to write compatible
  code with libsystem-bus you need to explicitly subscribe to
  NameOwnerChanged signals and just ignore NameAcquired/NameLost

- Applications have to deal with spurious signals they didn't expect,
  due to the probabilistic bloom filters. They need to handle this
  anyway, given that any client can send anything to arbitrary clients
  anyway, even in dbus1, so not much changes.

- clients of the system bus when kdbus is used must roll their own
  security. Only legacy dbus1 clients get the old XML policy enforced,
  which is implemented by systemd-bus-proxyd.

- Serial numbers of synthesized messages are always (uint32_t) -1.

- The org.freedesktop.DBus "driver" service is not special on
  kdbus. It is a bus activated service like any other with its own
  unique name.

- NameOwnerChanged is a synthetic message, generated locally and not
  by the driver.

- There's no standard per-session bus anymore. Only a per-user bus.