Andy X is an open-source distributed streaming platform designed to deliver the best performance possible for high-performance data pipelines, streaming analytics, streaming between microservices and data integrations. Andy X Connect is an open source distributed platform for change data capture. Start it up, point it at your databases, and your apps can start responding to all of the inserts, updates, and deletes that other apps commit to your databases. Andy X Connect is durable and fast, so your apps can respond quickly and never miss an event, even when things go wrong.
Andy X Connect works only with version 2 or later of Andy X.
Follow the Getting Started instructions how to run Andy X.
For local development and testing, you can run Andy X within a Docker container, for more info click here
After you run Andy X you will have to configure Andy X Connect. Configuring this adapter is quite easy only to json files need to be configured dbengine_config.json and xnode_config.json
dbengine_config.json - SQL Connection Configuration file, it's the file where we specify tables which this adapter will check the changes and produce them.
xnode_config.json - Andy X Configuration File, it's the file where we specify the connection with Andy X.
Below is an example of configuration file, this file should be saved into config directory of Andy X Connect before running this service.
{
"Engines": [
{
"EngineType": "MSSQL",
"ConnectionString": "Data Source=localhost;Initial Catalog={databaseName/master};Integrated Security=False;User Id=sa;Password=YourStrong!Passw0rd;MultipleActiveResultSets=True",
"Databases": [
{
"Name": "{databaseName}",
"Tables": [
{
"Name": "{tableName}",
"Insert": true,
"Update": true,
"Delete": true
},
{
"Name": "{tableName}",
"Insert": true,
"Update": true,
"Delete": false
}
]
}
]
}
]
}
EngineType accepts only MSSQL, Oracle and PostgreSQL for now
Below is an example of Andy X configuration file, this file should be saved into config directory of Andy X Connect before running this service.
{
"BrokerServiceUrls": ["https://localhost:9001"],
"Tenant": "{tenantName}",
"Product": "{productName}",
"Component": "{componentName}"
}
Some of the best ways to contribute are to try things out, file issues, join in design conversations, and make pull-requests.
Security issues and bugs should be reported privately, via email, [email protected]. You should receive a response within 24 hours.
These are some other repos for related projects:
- Andy X Dashboard - Dashboard for Andy X Node
- Andy X Terminal - Manage all resources of Andy X
Andy X Connect can be easily deployed on a docker container using docker-compose, for more info click here
version: '3.4'
services:
andyx-connect:
container_name: andyx-connect
image: buildersoftdev/andyx-connect:1.0.0-preview
volumes:
- ./dbengine_config.json:/app/config/dbengine_config.json
- ./xnode_config.json:/app/config/xnode_config.json
Network configuration using docker-compose is not needed if only Andy X Connect is deployed. Network should be configured if this adapter will be deployed together with Andy X and Andy X Storage.
Below is an example of deploying Andy X, Andy X Storage, Andy X Connect and Microsoft SQL Server, if you have problems deploying Andy X via docker-compose please click here.
version: '3.4'
services:
andyxstorage2:
container_name: andyxstorage
image: buildersoftdev/andyxstorage:2.0.1-preview
ports:
- 9002:443
environment:
- ASPNETCORE_ENVIRONMENT=Development
- ASPNETCORE_URLS=https://+:443
- ASPNETCORE_Kestrel__Certificates__Default__Password={password}
- ASPNETCORE_Kestrel__Certificates__Default__Path=/https/{domain}_private_key.pfx
- XNodes__0:ServiceUrl=andyxnode
- XNodes__0:Subscription=1
- XNodes__0:JwtToken=na
- DataStorage:Name=andyxstorage
volumes:
- ~/.aspnet/https:/https:ro
- ./data:/app/data
networks:
- local
# ----------------------------------------------------------------------------------------------------
andyx-connect:
container_name: andyx-connect
image: buildersoftdev/andyx-connect:1.0.0-preview
volumes:
# -- In the same folder with docker-compose should be these two files, before running docker-compose.
- ./dbengine_config.json:/app/config/dbengine_config.json
- ./xnode_config.json:/app/config/xnode_config.json
networks:
- local
# ----------------------------------------------------------------------------------------------------
andyx2:
container_name: andyxnode
image: buildersoftdev/andyx:2.0.1-preview
ports:
- 9001:443
environment:
- ASPNETCORE_ENVIRONMENT=Development
- ASPNETCORE_URLS=https://+:443
- ASPNETCORE_Kestrel__Certificates__Default__Password={password}
- ASPNETCORE_Kestrel__Certificates__Default__Path=/https/{domain}_private_key.pfx
volumes:
- ~/.aspnet/https:/https:ro
networks:
- local
# ----------------------------------------------------------------------------------------------------
sql-server:
image: mcr.microsoft.com/mssql/server
hostname: sql-server
container_name: sql-server
ports:
- "1433:1433"
environment:
- ACCEPT_EULA=Y
- MSSQL_SA_PASSWORD=YourStrong!Passw0rd
- MSSQL_PID=Express
networks:
- local
# ----------------------------------------------------------------------------------------------------
networks:
local:
driver: bridge
To run Andy X Connect with docker-compse you should execute
docker-compose up -d
This project has adopted the code of conduct defined by the Contributor Covenant to clarify expected behavior in our community.
For more information, see the .NET Foundation Code of Conduct.
Let's do it together! You can support us by clicking on the link below!