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 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
