Apache EventMesh is an effort undergoing incubation at The Apache Software Foundation (ASF),
sponsored by the Apache Incubator PMC.

Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, 
communications, and decision-making process have stabilized in a manner consistent with other successful ASF projects.

While incubation status is not necessarily a reflection of the completeness or stability of the code, 
it does indicate that the project has yet to be fully endorsed by the ASF.

Some of the incubating project’s releases may not be fully compliant with ASF policy.
For example, releases may have incomplete or un-reviewed licensing conditions. 
What follows is a list of issues the project is currently aware of (this list is likely to be incomplete): 

1- Releases may have incomplete licensing conditions


If you are planning to incorporate this work into your product/project, 
please be aware that you will need to conduct a thorough licensing review to determine the overall implications of including this work.
For the current status of this project through the Apache Incubator, visit: https://incubator.apache.org/projects/eventmesh.html
