@@ -197,136 +197,35 @@ Traditional solutions require Java expertise or vendor lock-in. FlinkDotNet brin
1971973 . Submit to Flink cluster via Gateway - prebuilt Java runner interprets IR
1981984 . Jobs run at full Flink performance on production clusters
199199
200- ## Key Features
201-
202- | Feature | Description |
203- | ---------| -------------|
204- | ** DataStream API** | Complete Apache Flink 2.1 API: map, filter, flatMap, window, aggregate, join |
205- | ** Kafka Integration** | First-class support for Kafka sources and sinks |
206- | ** Event-Time Processing** | Watermarks, late data handling, time windows (tumbling/sliding/session) |
207- | ** Exactly-Once** | Checkpointing and savepoints for fault tolerance |
208- | ** Dynamic Scaling** | Flink 2.1 adaptive scheduler, reactive mode, savepoint-based scaling |
209- | ** Workflow Integration** | Temporal.io platform integration for complex orchestration |
210- | ** Local Development** | .NET Aspire integration - start full stack with one command |
211- | ** Enterprise Observability** | Full PGL stack (Prometheus, Grafana, Loki) + OpenTelemetry |
212-
213- ## Proven at Scale
214-
215- ✅ ** 10 Integration Tests Passing** - Complete pipeline validated on every commit
216-
217- 🔗 [ ** View Live Test Results** ] ( https://github.com/devstress/FlinkDotnet/actions/workflows/localtesting-integration-tests.yml )
218-
219- ** What's validated:**
220- - ✅ Kafka producer/consumer with Flink processing
221- - ✅ Basic transformations (map, filter, flatMap)
222- - ✅ Stateful processing (timers, event-time windows)
223- - ✅ Flink SQL via TableEnvironment and SQL Gateway
224- - ✅ Complex multi-step pipelines
225- - ✅ Aspire orchestration and service discovery
226- - ✅ Temporal workflow integration
227-
228- ## Real-World Use Cases
229-
230- ** Financial Services** - Real-time fraud detection, risk calculation, regulatory reporting
231- ** E-commerce** - Order processing, inventory management, personalization
232- ** IoT/Manufacturing** - Sensor data processing, predictive maintenance, quality control
233- ** Healthcare** - Patient monitoring, care coordination, compliance tracking
234-
235- See [ ** Architecture & Use Cases** ] ( docs/architecture-and-usecases.md ) for detailed implementations.
236-
237- ## Project Structure
238-
239- ```
240- FlinkDotNet/
241- ├── FlinkDotNet.DataStream/ # Core FlinkDotnet unified package (DataStream API, Common, JobBuilder)
242- ├── FlinkDotNet.JobGateway/ # Job submission service
243- └── Test Projects/ # Unit and integration tests
244-
245- LocalTesting/ # Complete local dev environment
246- ├── LocalTesting.FlinkSqlAppHost/ # .NET Aspire orchestration
247- └── LocalTesting.IntegrationTests/ # End-to-end validation tests
248-
249- LearningCourse/ # 15-day learning path
250- ├── IntegrationTests.sln/ # Dedicated solution for course tests
251- └── Day01-Day15/ # 15 days of hands-on exercises
252- ```
253-
254200## Documentation
255201
256- | Guide | Description |
257- | -------| -------------|
258- | [ ** Getting Started** ] ( docs/wiki/Getting-Started.md ) | Complete setup and first job |
259- | [ ** Architecture & Use Cases** ] ( docs/architecture-and-usecases.md ) | System design, scaling strategies, real-world examples |
260- | [ ** API Reference** ] ( docs/api-reference.md ) | Complete DataStream API documentation |
261- | [ ** Flink vs Kafka Streams vs Temporal** ] ( docs/flink-vs-temporal-decision-guide.md ) | When to use each technology |
262- | [ ** Learning Course** ] ( LearningCourse/README.md ) | 15-day hands-on exercises |
263- | [ ** Contributing** ] ( CONTRIBUTING.md ) | Development guidelines |
264-
265- ### Quick Links
266-
267- - 📖 [ Quickstart Guide] ( docs/quickstart.md )
268- - 🔧 [ Local Development Setup] ( docs/local-testing-setup.md )
269- - 📊 [ Observability & Monitoring] ( docs/observability.md )
270- - 🚨 [ Troubleshooting] ( docs/troubleshooting.md )
271- - 🔄 [ CI/CD Integration] ( docs/ci-cd-integration.md )
272-
273- ## Learning Path
202+ 📚 ** Complete guides and references for all aspects of FlinkDotNet:**
274203
275- New to FlinkDotNet? Follow our [ ** 15-Day Learning Course** ] ( LearningCourse/README.md ) :
204+ ### Getting Started
205+ - ** [ Getting Started Guide] ( docs/getting-started.md ) ** - Complete setup, first job, and local development
206+ - ** [ Quickstart] ( docs/quickstart.md ) ** - 5-minute minimal example
207+ - ** [ Installation Options] ( docs/getting-started.md#installation-options ) ** - NuGet, Docker, and source installation
208+ - ** [ User Instructions Wiki] ( docs/wiki/ ) ** - Detailed guides for Client, Gateway, and Docker deployment
276209
277- - ** Days 1-2:** Kafka + Flink fundamentals, stream processing basics
278- - ** Days 3-4:** Event-time windowing, backpressure handling
279- - ** Days 5-6:** Temporal workflows, enterprise observability
280- - ** Days 7-8:** Stress testing, exactly-once semantics
281- - ** Days 9-10:** Performance tuning, security patterns
282- - ** Days 11-14:** Disaster recovery, chaos engineering
283- - ** Day 15:** Capstone project
210+ ### Core Documentation
211+ - ** [ Features] ( docs/features.md ) ** - Complete feature list with Apache Flink 2.1 capabilities
212+ - ** [ API Reference] ( docs/api-reference.md ) ** - Complete DataStream API documentation
213+ - ** [ Architecture & Use Cases] ( docs/architecture-and-usecases.md ) ** - System design and real-world examples
284214
285- Each day includes working code examples and integration tests.
215+ ### Advanced Topics
216+ - ** [ Performance Benchmarks] ( docs/performance-benchmarks.md ) ** - Throughput metrics and optimization
217+ - ** [ Observability & Monitoring] ( docs/observability.md ) ** - Metrics, logging, and tracing
218+ - ** [ Deployment] ( docs/deployment.md ) ** - Production deployment strategies
219+ - ** [ Troubleshooting] ( docs/troubleshooting.md ) ** - Common issues and solutions
286220
287- ## Apache Flink 2.1 Support
221+ ### Technology Decisions
222+ - ** [ Flink vs Temporal Decision Guide] ( docs/flink-vs-temporal-decision-guide.md ) ** - When to use each technology
223+ - ** [ Apache Flink 2.1 Features] ( docs/flink-21-features.md ) ** - Complete API mapping
288224
289- FlinkDotNet implements extensive Apache Flink 2.1 features:
290-
291- - ** Adaptive Scheduler** - Automatic parallelism optimization
292- - ** Reactive Mode** - Elastic scaling based on cluster resources
293- - ** Dynamic Scaling** - Change parallelism without job restart
294- - ** Advanced Partitioning** - Rebalance, rescale, forward, shuffle, broadcast, custom
295- - ** Savepoint Operations** - Create, restore, scale from savepoints
296- - ** Fine-grained Resource Management** - Slot sharing groups, resource profiles
297-
298- See [ ** Apache Flink 2.1 Features** ] ( docs/flink-21-features.md ) for complete API mapping.
299-
300- ## Performance
301-
302- ** Validated throughput** (LocalTesting environment):
303- - 📈 ** 800K+ messages/sec** through complete Kafka → Flink → Output pipeline
304- - 📈 ** 80K+ msg/sec per Kafka partition** (20 partitions tested)
305- - 📈 ** 10% Temporal workflow processing** (80K workflows/sec) with full orchestration
306- - 📈 ** 3 TaskManagers, 8 slots each** = 24 parallel task capacity
307-
308- See [ ** Performance Benchmarks** ] ( docs/performance-benchmarks.md ) for detailed metrics.
309-
310- ## Community & Support
311-
312- - 💬 ** GitHub Issues** - Bug reports and feature requests
313- - 📧 ** Discussions** - Architecture questions and best practices
314- - 🌟 ** Star the repo** - Stay updated on releases
315- - 🤝 ** Contribute** - See [ CONTRIBUTING.md] ( CONTRIBUTING.md )
316-
317- ## Comparison
318-
319- | Feature | FlinkDotNet | Kafka Streams | AWS Kinesis | Azure Stream Analytics |
320- | ---------| -------------| ---------------| -------------| ------------------------|
321- | Language | ** C# native** | Java/Scala | Multiple | SQL/JavaScript |
322- | Scale | Millions/sec | < 100K/sec | Thousands/sec | Cloud-dependent |
323- | Exactly-Once | ✅ External systems | ✅ Kafka only | ❌ | ❌ |
324- | Complex CEP | ✅ | ❌ | ❌ | Limited |
325- | Multi-Cloud | ✅ | ✅ | AWS only | Azure only |
326- | Local Dev | ✅ Aspire | ✅ | ❌ | ❌ |
327- | Cost | Infrastructure | Infrastructure | Per shard | Per job |
328-
329- See [ ** Technology Decision Guide** ] ( docs/flink-vs-temporal-decision-guide.md ) for detailed comparison.
225+ ### Learning Resources
226+ - ** [ 15-Day Learning Course] ( LearningCourse/README.md ) ** - Comprehensive hands-on training
227+ - ** [ Local Testing Setup] ( docs/local-testing-setup.md ) ** - Development environment details
228+ - ** [ Contributing Guide] ( CONTRIBUTING.md ) ** - Development guidelines
330229
331230## Requirements
332231
@@ -335,6 +234,13 @@ See [**Technology Decision Guide**](docs/flink-vs-temporal-decision-guide.md) fo
335234- ** Apache Flink 2.1 cluster** - Production deployments
336235- ** Apache Kafka** - For stream sources/sinks (optional)
337236
237+ ## Community & Support
238+
239+ - 💬 ** [ GitHub Issues] ( https://github.com/devstress/FlinkDotnet/issues ) ** - Bug reports and feature requests
240+ - 📧 ** [ Discussions] ( https://github.com/devstress/FlinkDotnet/discussions ) ** - Architecture questions and best practices
241+ - 🌟 ** Star the repo** - Stay updated on releases
242+ - 🤝 ** [ Contribute] ( CONTRIBUTING.md ) ** - Development guidelines
243+
338244## License
339245
340246MIT License - see [ LICENSE] ( LICENSE ) for details.
@@ -349,6 +255,6 @@ Built on top of:
349255
350256---
351257
352- ** Ready to process billions of events?** Start with the [ Quick Start ] ( #quick-start ) or explore the [ Learning Course] ( LearningCourse/README.md ) .
258+ ** Ready to process billions of events?** Start with the [ Getting Started Guide ] ( docs/getting-started.md ) or explore the [ 15-Day Learning Course] ( LearningCourse/README.md ) .
353259
354260🌟 ** Star this repo** to stay updated on new features and releases.
0 commit comments