[[breaking-8.0]]
=== Breaking changes in 8.0
Here are the breaking changes for 8.0.

[discrete]
[[security-on-8.0]]
===== Secure communication with {es} 
{ls} must establish a Secure Sockets Layer (SSL) connection before it can transfer data to an on-premise {es} cluster. 
{ls} must have a copy of the {es} CA that signed the cluster's certificates.
When a new {es} cluster is started up _without_ dedicated certificates, it generates its own default self-signed Certificate Authority at startup.

Our hosted {ess} simplifies safe, secure communication between Logstash and Elasticsearch. 
{ess} uses certificates signed by standard publicly trusted certificate authorities, and therefore setting a cacert is not necessary.

For more information, see {logstash-ref}/ls-security.html#es-security-on[{es} security on by default]. 

[discrete]
[[bc-java-11-minimum]]
===== Java 11 minimum
Logstash requires Java 11 or later.
By default, Logstash will run with the bundled JDK, which has been verified to
work with each specific version of Logstash, and generally provides the best
performance and reliability.

[discrete]
[[bc-java-home]]
===== Support for JAVA_HOME removed
We've removed support for using `JAVA_HOME` to override the path to the JDK. 
Users who need to use a version other than the bundled JDK should set the value
of `LS_JAVA_HOME` to the path of their preferred JDK. 
The value of `JAVA_HOME` will be ignored.

[discrete]
[[bc-ecs-compatibility]]
===== ECS compatibility is now on by default
Many plugins can now be run in a mode that avoids implicit conflict with the Elastic Common Schema.
This mode is controlled individually with each plugin's `ecs_compatibility` option, which defaults to the value of the Logstash `pipeline.ecs_compatibility` setting.
In Logstash 8, this compatibility mode will be on-by-default for all pipelines. https://github.com/elastic/logstash/issues/11623[#11623]

If you wish to _lock in_ a pipeline's behaviour from Logstash 7.x before upgrading to Logstash 8, you can set  `pipeline.ecs_compatibility: disabled` to its definition in `pipelines.yml` (or globally in `logstash.yml`).

[discrete]
[[bc-ruby-engine]]
===== Ruby Execution Engine removed
The Java Execution Engine has been the default engine since Logstash 7.0, and works with plugins written in either Ruby or Java.
Removal of the Ruby Execution Engine will not affect the ability to run existing pipelines. https://github.com/elastic/logstash/pull/12517[#12517]

[discrete]
[[bc-utf-16]]
===== Support for UTF-16
We have added support for UTF-16 and other multi-byte-character when reading log files. https://github.com/elastic/logstash/pull/9702[#9702]

[discrete]
[[bc-field-ref-parser]]
===== Field Reference parser configuration setting removed
The Field Reference parser interprets references to fields in your pipelines and plugins.
Its behavior was configurable in 6.x, and 7.x allowed only a single option: `strict`.
8.0 no longer recognizes the setting, but maintains the same behavior as the `strict` setting.
{ls} rejects ambiguous and illegal inputs as standard behavior.
