firewalld is a firewall daemon developed by Red Hat. It uses nftables by default. From the project home page:
Firewalld provides a dynamically managed firewall with support for network/firewall zones that define the trust level of network connections or interfaces. It has support for IPv4, IPv6 firewall settings, ethernet bridges and IP sets. There is a separation of runtime and permanent configuration options. It also provides an interface for services or applications to add firewall rules directly.
To save the changes, you should use the option "--permanent":
sudo firewall-cmd --permanent [the rest of your command]
Any of your changes without this option will be lost when you restart the whole firewalld server, or restart your machine.
Zone is a collection of default rules that can be applied to a specific interface. The details can be found here.