𝐓𝐡𝐞 𝐍𝐞𝐰 𝐀𝐫𝐜𝐡𝐢𝐭𝐞𝐜𝐭𝐮𝐫𝐞 𝐨𝐟 𝐓𝐫𝐮𝐬𝐭: 𝐇𝐨𝐰 𝐉𝐚𝐯𝐚/𝐂# 𝐚𝐧𝐝 𝐏𝐲𝐭𝐡𝐨𝐧 𝐃𝐞𝐩𝐞𝐧𝐝 𝐨𝐧 𝐓𝐲𝐩𝐞𝐒𝐜𝐫𝐢𝐩𝐭'𝐬 𝐆𝐮𝐚𝐫𝐝𝐫𝐚𝐢𝐥𝐬 ( 𝑺𝒐𝒖𝒓𝒄𝒆:𝐆𝐢𝐭𝐇𝐮𝐛 𝐎𝐜𝐭𝐨𝐯𝐞𝐫𝐬𝐞 𝟐𝟎𝟐𝟓 𝐃𝐚𝐭𝐚 ) The GitHub Octoverse 2025 data confirms the new core stack pattern for enterprise projects, driven by AI and the need for stability. It’s a three-layer system, not a single language: 🏦 𝙅𝒂𝙫𝒂/𝑪# (𝑻𝙝𝒆 𝑨𝙣𝒄𝙝𝒐𝙧): 𝙃𝒐𝙡𝒅 𝒕𝙝𝒆 𝒅𝙪𝒓𝙖𝒃𝙡𝒆 𝒅𝙤𝒎𝙖𝒊𝙣 - transaction logic, compliance, complex business rules. Stable core; changes slowly. 🧠 𝑷𝙮𝒕𝙝𝒐𝙣 (𝑻𝙝𝒆 𝑩𝙧𝒂𝙞𝒏): 𝑻𝙝𝒆 𝒂𝙙𝒂𝙥𝒕𝙞𝒗𝙚 𝙞𝒏𝙩𝒆𝙡𝒍𝙞𝒈𝙚𝒏𝙘𝒆 𝒍𝙖𝒚𝙚𝒓- data prep, ML training, lightweight AI services (APIs). Fast-moving. 🛡️ 𝙏𝒚𝙥𝒆𝙎𝒄𝙧𝒊𝙥𝒕 (𝙏𝒉𝙚 𝙂𝒍𝙪𝒆 & 𝑮𝙪𝒂𝙧𝒅𝙧𝒂𝙞𝒍) - The connective surface. Builds UIs, consumes Python APIs, and acts as the safety layer. 𝑾𝙝𝒚 𝒕𝙝𝒊𝙨 𝙩𝒓𝙞𝒐 𝒊𝙨 𝙩𝒉𝙚 𝙬𝒊𝙣𝒏𝙞𝒏𝙜 𝙥𝒂𝙩𝒕𝙚𝒓𝙣: 𝑺𝙚𝒄𝙪𝒓𝙞𝒕𝙮 𝘽𝒍𝙖𝒏𝙠𝒆𝙩: TypeScript mirrors contracts from Python and Java/C#, catching data mismatches before runtime - critical with unpredictable AI outputs. 𝑺𝙥𝒆𝙚𝒅 + 𝑺𝙖𝒇𝙚𝒕𝙮: Java/C# protect business rules; Python innovates; TypeScript lets product teams move faster with type feedback. 𝙇𝒊𝙫𝒊𝙣𝒈 𝑫𝙤𝒄𝙨: Types (interfaces, enums) become reliable onboarding documentation. The future of architecture is clear separation of concerns enforced by strict contracts. #GitHubOctoverse #TypeScript #Python #Java #CSharp #DomainDrivenDesign #CleanArchitecture #AIEngineering #TypeSafety #SoftwareArchitecture
GitHub Octoverse 2025: New Architecture of Trust
More Relevant Posts
-
Series Post 6 : Learnings from LangGraph - Debugging State, HIL, and Visualization My last post was about LangGraph and why we need it in our enterprise environment. I learned a few things while trying to move my AI orchestration from LangChain to LangGraph. It exposed complex, stateful problems that required non-traditional solutions. Here are some of the hurdles I cleared in building robust LangGraph workflows: The Persistence Problem for HIL: Implementing Human-in-the-Loop (HIL) meant pausing the workflow. If the service restarted before the human acted, the state was lost. Solution: PostgreSQL (Or similar) Checkpointer. I configured LangGraph to use its checkpointer API, persisting the entire graph state to my PostgreSQL database. This made the workflow durable; it could survive restarts and resume HIL tasks exactly where it left off. The Invisible Workflow Challenge: Debugging conditional logic and loops in a complex LangGraph is nearly impossible just by reading Python logs. Solution: Custom Visualization UI. I built a lightweight visualization layer using Angular that renders the graph structure and highlights the live execution path. This allowed me to visually trace the LLM's decisions, instantly identifying where an agent was looping or taking a wrong turn. Currentley there are many options to visualize LangGraph flow but might not be free. I might have reinvented something but it was worth it. Preventing Runaway Agents (Infinite Loops): A slightly flawed prompt or tool output could cause the agent to endlessly cycle between nodes. Solution: Hard Limit on Node Visits. I implemented custom logic to monitor the number of visits to any single node or the total steps in the graph. If this count exceeded a defined threshold, the workflow was deliberately failed and logged, preventing runaway resource consumption. Overall LangGraph is a good option for enterprises to look beyond their current stack of licensed low code products specially from a AI adoption perspective. One major reason for the slow adoption of LangGraph in enterprises is the fact that its heavily dependent on Python librairies and majority of the workflows are built on Java based platforms. Let me know your thoughts. #LangGraph #LLM #AI #Debugging #EnterpriseArchitecture #PostgreSQL #SoftwareEngineering #PassionProject
To view or add a comment, sign in
-
🚀 𝗟𝗮𝗻𝗴𝗖𝗵𝗮𝗶𝗻 & 𝗟𝗮𝗻𝗴𝗚𝗿𝗮𝗽𝗵 𝘃𝟭.𝟬: 𝗖𝗼𝗿𝗲 𝗟𝗼𝗼𝗽 𝗥𝗲𝗳𝗮𝗰𝘁𝗼𝗿𝗲𝗱 𝗳𝗼𝗿 𝗣𝗿𝗼𝗱𝘂𝗰𝘁𝗶𝗼𝗻-𝗚𝗿𝗮𝗱𝗲 𝗔𝗴𝗲𝗻𝘁𝗶𝗰 𝗔𝗜 Developers, the wait is over—LangChain v1.0 streamlines agent orchestration with 𝐜𝐫𝐞𝐚𝐭𝐞_𝐚𝐠𝐞𝐧𝐭(): a provider-agnostic primitive that spins up ReAct-style loops (LLM → tools → structured output) in under 10 lines. Key upgrades: * 𝐌𝐢𝐝𝐝𝐥𝐞𝐰𝐚𝐫𝐞 𝐇𝐨𝐨𝐤𝐬: Intercept & customize every step—inject HITL pauses, auto-summarize traces to dodge context bloat, or redact PII pre-tool call. Extensible via Runnable interfaces for your custom logic. * 𝐍𝐚𝐭𝐢𝐯𝐞 𝐒𝐭𝐫𝐮𝐜𝐭𝐮𝐫𝐞𝐝 𝐎𝐮𝐭𝐩𝐮𝐭𝐬: Bakes in tool-calling + provider fallbacks (e.g., OpenAI functions, Anthropic tools), cutting extra LLM invocations by 50%+ and slashing latency. Unified Content Blocks: Messages now expose .content_blocks for consistent handling of traces, citations, and server-side execution across 100+ integrations. LangGraph v1.0 elevates this to graph-native execution: durable Checkpoints for fault-tolerant state (resume post-crash, no custom DB glue), composable subgraphs for multi-agent orchestration, and first-class async persistence via SQLite/Postgres backends. Fueling this? Our $125M Series B at $1.25B valuation, doubling down on LangSmith for end-to-end observability and agent debugging. Production agents just got bulletproof. Prototype a multi-tool RAG chain today. Details: [https://lnkd.in/giW_KDm4] What's your first v1.0 experiment—persistent multi-agent sims or middleware-extended evals? #LangChain #LangGraph #AgenticAI #LLMs #Python
To view or add a comment, sign in
-
Lessons Learned Today: Handling API Responses and Robust Code Design Today’s deep dive into building a resilient search system with the Eyecon API reminded me how critical it is to design code that’s both robust and predictable. Here’s what stood out: 1️⃣ Always anticipate missing or unexpected data Empty responses, empty lists, or missing images aren’t errors — they’re just “no data” cases. Treat them accordingly rather than letting your system crash. 2️⃣ Graceful fallbacks save headaches By returning `None` for missing or unprocessable images, and default messages for empty responses, we keep our system safe while maintaining meaningful output. 3️⃣ Be careful with assumptions in code Even a harmless debug line like `image_data[:100]` can crash if the variable is `None`. Always safeguard before slicing or indexing. 4️⃣ Legacy logic can be preserved safely We maintained legacy behavior (merging images to the first user) while improving resilience and modernizing handling of API data. 5️⃣ Asynchronous flows need careful orchestration With `asyncio.gather`, we can run multiple API calls concurrently, but we must handle exceptions individually to avoid one failure breaking the entire pipeline. The takeaway? Writing robust code isn’t just about handling happy paths . it’s about designing for every edge case, gracefully. Today was a reminder: thoughtful error handling, safe defaults, and clear data expectations make all the difference in production systems. #Python #AsyncProgramming #APIIntegration #SoftwareEngineering #RobustCode #LearningEveryday
To view or add a comment, sign in
-
#CodeTrip | Domain Modelling in GoProcure (Contd.) Highlights from Our Class Diagram (see attached image) Vendor ↔ Item 1 ← 0..* (One-to-Many) A Vendor can supply many Items, and each Item belongs to one Vendor. This is an Association relationship. Notice the direction — an Item should reference its Vendor. If we also need to fetch all items by vendor, we can make it bidirectional. Implementation Note: In ORM tools like Entity Framework or JPA, association direction and delete behavior (cascade or restrict) depend heavily on this relationship type. We’ll explore this soon. PurchaseOrder ↔ PurchaseOrderLine 1 o- 1..* (One-to-Many, Composition) A Purchase Order must have at least one Purchase Order Line. Each line belongs exclusively to its order — delete the order, and the lines go too. This is a Composition relationship (filled diamond). So in code, when constructing a PurchaseOrder, you must initialize its collection of PurchaseOrderLines and ensure it’s never empty. PurchaseRequest ↔ Approvals 1 o-- 0..* (One-to-Many, Aggregation) A Purchase Request may exist without approvals yet. When approvals are created, they relate back to the request, but they can also exist independently. This is an Aggregation relationship — a looser link than Composition. Implementation Direction I’ll be implementing this in .NET 8, but since I also work extensively with Java, I’ll highlight equivalent concepts and patterns from both ecosystems. That way, you can see how these principles apply across technologies. Next Steps Next, we’ll implement our domain models as classes — applying best practices for maintainability, scalability, and clean architecture. For now, study the diagram carefully and think about: which relationships should be navigable both ways, how ownership affects cascade deletes, and which entities are true aggregates vs supporting objects. And you can let me have your feedback on the comment section. Stay tuned — things are about to get more hands-on. #CodeTrip #GoProcure #DomainModeling #DDD #CleanArchitecture #OOP #SoftwareDesign #EntityFramework #Java #DotNet #SoftwareEngineering #BuildInPublic #TravelAndTech
To view or add a comment, sign in
-
-
𝗧𝗵𝗲 𝟴𝟬% 𝗗𝗮𝘁𝗮 𝗣𝗿𝗲𝗽 𝗣𝗿𝗼𝗯𝗹𝗲𝗺? Stop wasting 80% of your analytics time on repetitive data cleaning. Data prep is a universal bottleneck. Teams build inconsistent, one-off scripts for every new dataset, which kills productivity. With DataWarp's visual pipeline builder, you can create generic, reusable data cleaning workflows and apply them instantly. The best part? Export the entire pipeline as clean Python code to standardize your MLOps and production environments. Automate the prep, accelerate the insights. #DataPrep #ETL #MLOps #DataEngineering #Analytics #DataCleaning #Automation
To view or add a comment, sign in
-
Hey, I have a quick question for you guys 👇 𝗜𝗳 𝘆𝗼𝘂 𝗵𝗮𝗱 𝘁𝗵𝗲 𝗰𝗵𝗮𝗻𝗰𝗲 𝘁𝗼 𝗿𝗲𝗽𝗹𝗮𝗰𝗲 𝗝𝗦𝗢𝗡 𝘄𝗶𝘁𝗵 𝘀𝗼𝗺𝗲𝘁𝗵𝗶𝗻𝗴 𝗰𝗹𝗲𝗮𝗻𝗲𝗿, 𝘄𝗼𝘂𝗹𝗱 𝘆𝗼𝘂 𝗱𝗼 𝗶𝘁? Because… JSON had a great run — but it’s finally meeting its successor. Say hello to TOON (𝗧𝗼𝗸𝗲𝗻-𝗢𝗿𝗶𝗲𝗻𝘁𝗲𝗱 𝗢𝗯𝗷𝗲𝗰𝘁 𝗡𝗼𝘁𝗮𝘁𝗶𝗼𝗻). And honestly? If JSON is the old toolbox… TOON feels like switching to power tools. 🤔 Why is everyone talking about TOON? • 𝗖𝗹𝗲𝗮𝗻𝗲𝗿 𝘀𝘆𝗻𝘁𝗮𝘅: No more quote chaos. No more curly-brace forests. Just readable data. • 𝗗𝗲𝘃𝗲𝗹𝗼𝗽𝗲𝗿-𝘀𝗵𝗮𝗽𝗲𝗱 𝗱𝗲𝘀𝗶𝗴𝗻: TOON looks like how we think about data — structured, compact, and visual. • 𝗙𝗮𝘀𝘁𝗲𝗿 𝘁𝗼 𝘄𝗼𝗿𝗸 𝘄𝗶𝘁𝗵: Less noise = quicker parsing, easier debugging, and fewer mistakes. • 𝗡𝗮𝘁𝘂𝗿𝗮𝗹 𝘀𝘁𝗿𝘂𝗰𝘁𝘂𝗿𝗲: You define fields once, then fill in the rows like a human… not a machine. JSON: { 'users': [ { 'id': 1, 'name': 'Alice', 'role': 'admin' }, { 'id': 2, 'name': 'Bob', 'role': 'user' } ] } TOON: users[2]( id[,name,role]: 1,Alice,admin 2,Bob,user ) Which one feels easier on your brain? Be honest. 👀 🌟 The future? Data formats designed for humans. JSON isn’t “dead.” But TOON is the upgrade everyone wished JSON had years ago. Let me know in the comments 👇 Would you switch to TOON for your next project? #TOON #JSON #DataFormats #Developers #CleanCode #Programming #SoftwareEngineering #APIDesign #TechInnovation #FutureOfTech #DataEngineering #AIEngineering #DevCommunity #tacklestudioz #codernotme
To view or add a comment, sign in
-
-
Because “It Works on My Machine” Isn’t Enough, Building APIs is one thing. Understanding what’s happening inside them in real time, that’s engineering maturity. When your service scales, logs alone won’t save you. You need observability, visibility into your system’s behavior across requests, dependencies, and infrastructure. ⚙️ Observability = Logs + Metrics + Traces 1️⃣ Logs → What happened 2️⃣ Metrics → How often it happens 3️⃣ Traces → Where it happens Together, they form a full picture of your system’s health. 🧩 How to Add Observability (FastAPI Example) Use OpenTelemetry to instrument your app: from opentelemetry import trace from opentelemetry.instrumentation.fastapi import FastAPIInstrumentor from fastapi import FastAPI app = FastAPI() FastAPIInstrumentor.instrument_app(app) @app.get("/orders") def get_orders(): return {"message": "Fetched all orders"} Then send data to a backend like Grafana Tempo, Jaeger, or Prometheus + Loki. ✅ Why It Matters Detect latency before users complain. Trace request flow across microservices. Correlate slow API endpoints with database or cache issues. Debug production issues in minutes, not hours. 🧠 Takeaway: Logs tell you what went wrong. Metrics show you how often. Traces show you why. A truly scalable backend doesn’t just perform well, it explains itself when something breaks. #FastAPI #BackendEngineering #Observability #OpenTelemetry #DevOps #Microservices #Python #DistributedSystems #Logging #Monitoring #SoftwareEngineering
To view or add a comment, sign in
-
Why you should stop using JSON and move to TOON? 🤔 Token-Oriented Object Notation (TOON) is a compact, human readable format designed to cut down on token usage when passing structured data to LLMs. Why TOON? 1. Optimized for LLM input, not output. 2. Compact format with token efficiency at its core. 3. Ideal for uniform arrays of objects (think multiple fields per row). 4. Leverages YAML like indentation and CSV style tabular format. Use JSON for programmatic work, and convert to TOON for LLM input to save tokens and reduce overhead. Check it out here: https://lnkd.in/dJHR25-P #LLM #JSON #TOON #OpenSource #Efficiency #AIEngineer #Developer #SaveTokens
To view or add a comment, sign in
-
🔥 toon4j is now available! As generative AI continues to scale across industries, controlling token usage costs has become a critical concern. If you’re working with models like GPT, Claude, or Gemini, you already know it: the more tokens a model reads or generates, the higher the bill. JSON is readable and ubiquitous but extremely verbose, which is why the TOON community created TOON (Token-Optimized Object Notation), a more compact, token-efficient format already implemented in several languages (Python, JS, Rust, etc.). 📦 toon4j is one of the Java implementations of this format, designed for seamless integration into backend or AI-driven applications (Spring, Quarkus, etc.) What makes toon4j powerful: ✅ Complete TOON v1.4 specification support ✅ Smart format optimization (tabular, primitive & list arrays) ✅ Flexible configuration (3 delimiter options, custom indentation) ✅ Seamless JSON ↔ TOON conversion ✅ Built-in token savings estimation ✅ Type-safe POJO serialization via Jackson ✅ Strict & lenient parsing modes ✅ Zero-config quick start with rich customization ✅ Comprehensive JavaDoc & examples 📌 Documentation, usage examples, and JSON vs TOON benchmark results are available in the repo. 🔗 https://bit.ly/4hOiHmZ 💬 Contributions, issues, and PRs are welcome. #java, LangChain Developer, #springai, #LLM, #GenAI, #toon
To view or add a comment, sign in
-
-
🚀 Just Completed a Deep Dive into Claude Code Here are my biggest takeaways: 💡 Smart Context Management Claude uses three-layer CLAUDE.md files (machine / project / local) to keep the right context at the right time — nothing more, nothing less. ⚙️ Plan Mode vs Thinking Mode Plan Mode → breadth: multi-step tasks across the codebase Thinking Mode → depth: complex logic and debugging Knowing when to use each is a real game-changer. 🔍 Hooks for Code Quality Automatic TypeScript or Python checks and duplicate code detection run after every edit — it’s like having a senior engineer reviewing changes in real time. 🧩 Extensibility MCP servers (like Playwright) and GitHub integration (e.g. @mentions in PRs) open up powerful automation workflows I’m still exploring. #AI #DeveloperTools #SoftwareEngineering #ClaudeCode #Productivity
To view or add a comment, sign in
Explore related topics
Explore content categories
- Career
- Productivity
- Finance
- Soft Skills & Emotional Intelligence
- Project Management
- Education
- Technology
- Leadership
- Ecommerce
- User Experience
- Recruitment & HR
- Customer Experience
- Real Estate
- Marketing
- Sales
- Retail & Merchandising
- Science
- Supply Chain Management
- Future Of Work
- Consulting
- Writing
- Economics
- Artificial Intelligence
- Employee Experience
- Workplace Trends
- Fundraising
- Networking
- Corporate Social Responsibility
- Negotiation
- Communication
- Engineering
- Hospitality & Tourism
- Business Strategy
- Change Management
- Organizational Culture
- Design
- Innovation
- Event Planning
- Training & Development